当我把它放在标题中时:
<script>
function checkiffinished() {
var n = $('.result-row').length;
while (n!==3)
{
n = $('.result-row').length;
$("span").text("There are " + n + " divs.");
};
};
</script>
然后在正文中放
<script>
checkiffinished();
</script>
然后页面崩溃。
代码应该计算具有“result-row”类的 div 的数量并重复直到具有上述类的 div 的数量为 3。
我怎样才能做到这一点而不使页面崩溃?
编辑 1:页面中的其他 jQuery 导致另一个事件中有 .result-row 元素,这就是我需要定期检查它的原因。
EDIT2:我正在尝试与其他一些操纵页面元素的 jQuery 并行运行它。
最佳答案
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
关于Javascript while 循环使页面无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986284/