Javascript while循环使页面无法加载

Jos*_*osh 2 html javascript jquery loops while-loop

当我把它放在我的标题中时:

<script>
function checkiffinished() {
  var n = $('.result-row').length;
  while (n!==3)
  {
  n = $('.result-row').length;
  $("span").text("There are " + n + " divs.");
  };

  };
</script>
Run Code Online (Sandbox Code Playgroud)

然后在体内放

<script>
 checkiffinished();
 </script>
Run Code Online (Sandbox Code Playgroud)

然后页面崩溃了.

代码应该用"result-row"类计算div的数量,并重复这个,直到具有上述类的div数为3.

我怎样才能这样做而不会崩溃页面?

编辑1:我在页面中的其他jQuery导致在另一个事件上有.result-row元素,这就是为什么我需要它定期检查.

EDIT2:我正在尝试与其他一些操纵页面元素的jQuery并行运行.

pim*_*vdb 10

JavaScript一次只能运行一段代码.所以你的while循环堵塞了所有JavaScript执行.因此,任何添加元素的代码都会被暂停 - 基本上是永久的.

相反,您可能希望使用检查例如每秒的间隔:http://jsfiddle.net/pimvdb/sbs6m/1/.

function checkiffinished() {
  var n = $('.result-row').length;
  $("span").text("There are " + n + " divs.");
  if(n === 3) {
    // do something
    clearInterval(interval);
  }
};

var interval = setInterval(checkiffinished, 1000); // 1000 ms = 1 second
Run Code Online (Sandbox Code Playgroud)