while循环会在每次迭代时加载DOM,还是会像使用DOM一样循环启动?
e.g。
function whileExample(){
while(a > b){
$('p').each(function(){
num++
});
return num;
}
)
这会看到自循环开始以来添加的'p'
答案 0 :(得分:1)
获取元素的一些DOM方法返回一个实时列表,如果DOM发生更改,它将发生变化,但jQuery在获取元素时会复制列表。
当你循环jQuery对象中的元素时,你正在循环创建jQuery元素时存在的元素。
while
循环每次迭代都会创建一个新的jQuery对象,这样就可以获得当时存在的元素,但是当你从循环中返回时,只会有一次迭代。
但请注意,由于没有代码可以更改循环中的DOM,因此在循环期间不可能在DOM中添加任何元素。 Javascript是单线程的,因此在函数运行时没有其他代码可以运行。
答案 1 :(得分:0)
只有一个DOM,以“document”对象为根。它是在页面加载时创建的。 jQuery函数以及在DOM上运行的所有其他函数将在调用DOM时搜索DOM,因此它将在当前文档中找到ALL p。它不会找到删除的那些,它会找到那些添加的。