以下两个代码的区别是什么:
第一种方式:
$("p").text("test");
另一种方式:
$("p").text(function(){
return "test " + $(this).index();
});
通过.each循环:
$("p").each(function(c, obj){
$(obj).text("test");
});
我只想知道在性能方面彼此之间的差异。就像上一个显然是在做一个循环,但前两种方法呢?他们是否也循环改变DOM中匹配元素的文本?
请提前建议,谢谢!
答案 0 :(得分:1)
所有这些都应该进行迭代,因为元素集中可能有多个元素,并且值应该设置为每个元素。
但这些是两个不同的类别,第一个类别为所有元素设置静态文本,其中第二个和第二个类别。第3个可以设置动态文本。
在表现方面,第一名将是最快的......然后是第三名,紧接着是第二名(虽然我不知道为什么,我认为第二名将比第三名更快)
答案 1 :(得分:0)
在所有情况下,它都会将文本应用于所有匹配元素。选择器可以返回多个元素,因此它甚至是选项1的循环。如果您需要有关“循环”中当前元素的信息,选项2和3提供更多灵活性