jQuery的each()函数是否是非阻塞的?jQuery each()非阻塞?
在下面的例子中,我预计“每个测试”都会先记录下来,但是在每个测试中,“每个测试”都会先记录下来。
所以这会导致循环在返回错误之前运行到正文(有时是文档)元素。
我只是试图让一个共同的家长包装,或者如果两个元素(firstp和lastp)是兄弟姐妹,然后包装这些。
但是,我主要关心each()函数的性能以及它是否是非阻塞的。
while(firstp[0] !== lastp[0]){
//If parents are siblings, this will do for wrapping.
var isS = false;
firstp.siblings().each(function(index, el){
console.log("test in each");
if(jQuery(el)[0] === lastp[0]){
isS = true;
return true;
}
});
console.log("test out of each");
if(isS === true){ break; }
firstp = firstp.parent();
lastp = lastp.parent();
}
编辑:
对不起球员。这是一场虚惊。保罗是对的。我的HTML实际上有两个匹配firstp的元素。我没有意识到这一点,所以第一个没有兄弟姐妹,导致了错误。我一直在看第二个元素。
但是,我在过程中学到了一些东西,所以谢谢你花时间回答。
当“测试出每一个”被记录,你也看到登录控制台“在每个测试”? – ShankarSangoli
@Shankar是的,这两个文本都被记录下来,只是没有按我期望的顺序。也许我错过了一些明显的东西。 –
@Senica:当你的控制台日志消息在他们的文本中没有显示任何明显的关系时,我不认为你可以对“命令”做出断言。消息可以从外部循环中的不同迭代中打印出来,你永远不会知道。 –