jQuery.text()为匹配的元素做一个循环?

时间:2014-02-05 03:33:05

标签: jquery performance loops

以下两个代码的区别是什么:

第一种方式:

$("p").text("test");

另一种方式:

$("p").text(function(){
    return "test " + $(this).index();
});

通过.each循环:

$("p").each(function(c, obj){
    $(obj).text("test");
});

我只想知道在性能方面彼此之间的差异。就像上一个显然是在做一个循环,但前两种方法呢?他们是否也循环改变DOM中匹配元素的文本?

请提前建议,谢谢!

2 个答案:

答案 0 :(得分:1)

所有这些都应该进行迭代,因为元素集中可能有多个元素,并且值应该设置为每个元素。

但这些是两个不同的类别,第一个类别为所有元素设置静态文本,其中第二个和第二个类别。第3个可以设置动态文本。

在表现方面,第一名将是最快的......然后是第三名,紧接着是第二名(虽然我不知道为什么,我认为第二名将比第三名更快)

请参阅http://jsperf.com/jquery-text-vs-each-text

答案 1 :(得分:0)

在所有情况下,它都会将文本应用于所有匹配元素。选择器可以返回多个元素,因此它甚至是选项1的循环。如果您需要有关“循环”中当前元素的信息,选项2和3提供更多灵活性