Возможно проверочный алерт был засунут не туда куда нужно.)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
<link rel="stylesheet/less" type="text/css" href="style.less">
<script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.0/less.min.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
var i=1;
function test(){
$('#info').text(i);
if(i==12){
alert('конец');
clearInterval(timerId);
}
}
var timerId = setInterval(function(){test(); i++}, 300);
});
</script>
</head>
<body>
<div id="info"></div>
</body>
</html>