我在jQuery中推送到一个数组,之后我无法在该数组上执行.each
,导致它的原因是什么?
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
});
答案 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()