0
var arr = [1, 2, 3];

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

这适用于 jQuery,但集合不是由 DOM 元素组成,而是由整数组成。这不应该是不允许的吗?

4

2 回答 2

1

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

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

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

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

它处理常规数组和对象。

基本上,它不关心数组的内容是否可以工作,它只是遍历数组。

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

语义很重要,人。

于 2012-10-11T03:14:40.990 回答
1

正如 Felix Kling 所说,这是他们的决定。

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

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

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

于 2012-10-11T03:13:55.823 回答