为什么可以传递数组而不是选择器?

时间:2012-10-11 03:00:29

标签: jquery

var arr = [1, 2, 3];

$(arr).each(function() { alert(this) });

这适用于jQuery,除了set不是由DOM元素组成,而是整数。这不应该被允许吗?

2 个答案:

答案 0 :(得分:1)

菲利克斯·克林说这是他们的决定。

$(arr).each()是允许的,但您不应该使用它,因为它被认为效率低于$.each()

来源:http://api.jquery.com/each/#comment-40044794

另请阅读本文:http://api.jquery.com/each/#comment-38585086

答案 1 :(得分:1)

jQuery函数(相当于$)返回jQuery对象的常规数组

因此,你的代码片段工作非常有意义,因为它只是一个常规数组。

如果您按Paul Irish说并查看来源,您会发现它使用的代码基本相同

$.each(array, function(index, value) {});

处理常规数组和对象。

基本上,它并不关心数组中的工作原理,它只是遍历一个数组。

话虽如此,为了清楚起见,您应该使用$.each()变体,因为它更快(更直接),因此有人可以快速看到它是“常规”数组的“普通”值而不是jQuery对象。

语义很重要,人。