你能解释一下为什么$.each
有效,但arr.each
没有?这是我的情况:
$('.btnbtnbtn').on('click', function () {
var pesho = {
name: "pesho",
value: 23
};
var gosho = {
name: "gosho",
value: 25
};
var arr = [pesho, gosho] ;
$.each(arr, function (key, value) {
console.log(value.name, value.value)
});
return false;
});
这是工作示例,但如果我将$.each
替换为arr.each(function...)
则无法正常工作。
我认为这是一回事。提前谢谢!
答案 0 :(得分:3)
正如已经说过的,正确的实现是:
$.each
(more info here)arr.forEach
(more info here)以下是如何恰当使用每一个的工作示例:
var pesho = {
name: "pesho",
value: 23
};
var gosho = {
name: "gosho",
value: 25
};
var arr = [pesho, gosho];
$.each(arr, function(key, value) {
$("#jQueryEach").append("<div>" + value.name + ": " + value.value + "</div>");
});
arr.forEach(function(item, key) {
$("#jsArrayforEach").append("<div>" + item.name + ": " + item.value + "</div>");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span>jQuery Each:</span>
<div id="jQueryEach">
</div>
</div>
<hr>
<div>
<span>Javascript Array forEach:</span>
<div id="jsArrayforEach">
</div>
</div>
答案 1 :(得分:1)
Javascript的原生数组没有每个功能,但是有foreach功能与JQuery的功能相同强>
答案 2 :(得分:0)
本机JS中没有“each”这样的东西。
forEach
可用于迭代数组。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
这与jQuery的$.each
(jQuery.each( array, callback )
)的第一个签名基本相同。
https://api.jquery.com/jquery.each/
请注意,jQuery.each()
也可用于迭代属性对象(jQuery.each( object, callback )
而不是数组。在这种情况下,回调的签名略有不同。本机JS等效于此类循环将是for...in
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
答案 3 :(得分:-1)
each()是一个只与jquery对象一起工作的jquery函数,为了使arr.each()可行,请将arr转换为Jquery对象,将arr.each()替换为$(arr).each(function。 ....),它应该工作
希望它能帮到你