jQuery推送,每个似乎都不起作用?

时间:2014-11-16 22:59:11

标签: jquery push each

我在jQuery中推送到一个数组,之后我无法在该数组上执行.each,导致它的原因是什么?

Fiddle

var sections = [];
for (var j = 0; j < 15; j++) {
  sections.push("tests-" + j);
}

console.log(sections);  // this is a proper array

sections.each(function(){
  console.log("test");  // Uncaught TypeError: undefined is not a function
});

1 个答案:

答案 0 :(得分:2)

没有Array.prototype.each方法,使用Array.prototype.forEach或jQuery $.each实用程序功能。您尝试使用的each方法属于jQuery对象,用于迭代集合。您可以使用$(sections).each(fn)语法从数组创建jQuery对象并使用它的each方法,但这是一个坏主意,应该避免,因为sections不是DOM元素的数组

请注意,jQuery有2个each方法,一个是utility function,另一个是a method of jQuery object

当您将jQuery方法定义为this.each时,您可以使用this 上下文指的是一个jQuery对象,它是一个类似于数组的对象,即它有一些虽然它不是一个真正的数组,但它是一个jQuery对象,你可以在jQuery对象上调用.get()方法来获取内部数组,现在返回的数组有.forEach()方法但不是{ {1}}方法。

.each()