作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法将对象推送到数组,我也不知道为什么。目前,结果(记录)重复每个循环的最后一个实例。
<div data-provider="prv1"></div>
<div data-rating="rtn1"></div>
<div data-price="prc1"></div>
<div data-provider="prv2"></div>
<div data-rating="rtn2"></div>
<div data-price="prc2"></div>
<div data-provider="prv3"></div>
<div data-rating="rtn3"></div>
<div data-price="prc3"></div>
<div data-provider="prv4"></div>
<div data-rating="rtn4"></div>
<div data-price="prc4"></div>
(function(){
var sort = $(".sort select");
var provider = $("[data-provider]");
var rating = $("[data-rating]");
var price = $("[data-price]");
var records = [];
var record = {};
$(provider).each(function(index, value){
record.provider = $(provider).eq(index).data("provider");
record.rating = $(rating).eq(index).data("rating");
record.price = $(price).eq(index).data("price");
records[index] = record;
});
})();
最佳答案
在您的循环中,您将每个索引设置为等于记录。由于record的作用域是匿名函数,所以对于每个索引来说都是同一个对象。
您想要的范围是提供给 .each
的函数
$(provider).each(function(index, value){
var record = {};
...
});
关于Javascript 将对象推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28290072/
我是一名优秀的程序员,十分优秀!