json对象推送使用循环中的最后一项覆盖所有项目吗?

问题描述 投票:0回答:1
var options = [];
$(b).each(function (a) {
    debugger;
    s += '<option value=\'' + b[a].Material + '\'>' + b[a].Material + '</option>'
    item = {};
    item["name"] = b[a].Material;
    item["value"] = b[a].Material;
    item["checked"] = false;
    options.push(item);
});
console.log(options);    

s的值是

<option value='MAB380-01'>MAB380-01</option>
<option value='MAB380-02'>MAB380-02</option>

在第一次迭代中,options具有MAB380-01。但是在第二次迭代之后,options具有MAB380-02中的2。

Firefox和Chrome给我正确的结果,但不是IE。

javascript json each
1个回答
0
投票
var options = [];
$(b).each(function (a) {
    debugger;
    s += '<option value=\'' + b[a].Material + '\'>' + b[a].Material + '</option>'
    var item = new Object();
    item.name = b[a].Material;
    item.value. = b[a].Material;
    item.checked = false;
    options.push(item);
});
console.log(options);

这些代码可在Chrome,Firefox和IE11上使用。

© www.soinside.com 2019 - 2024. All rights reserved.