我有一个如下所示的 html
HTML:
<INPUT TYPE=CHECKBOX NAME="clcik" onClick="add('1234','blah')" />
<input type="hidden" id="project" value="" />
JS:
function add(obj1 , obj2){
var jsonArray = [];
var jsonObj = { product_id : obj1 , name : obj2 };
jsonArray.push(jsonObj);
var field = document.getElementById('project');
field.setAttribute('value', JSON.stringify(jsonArray));
alert(field.getAttribute('value'));
}
我尝试先设置并再次检索以检查,但没有发生任何事情..我不明白我错在哪里......?
最佳答案
我猜你错过了将 stringify 结果放入 stringData
变量中,因为在它到达你试图警告该值的行之前,你会收到一个 js 错误。
JSON
或 JSON.stringify
不是由 jQuery
提供的,您必须包含 json2如果浏览器本身不支持,则页面上的库。
试试这个
function add(obj1 , obj2){
var jsonArray = [];
var jsonObj = { product_id : obj1 , name : obj2 };
jsonArray.push(jsonObj);
var stringData = JSON.stringify(jsonArray);
var field = document.getElementById('project');
field.setAttribute('value', stringData);
alert(field.getAttribute('value'));
}
根据评论中的请求从数组中删除元素的代码。
var newArray = [], productIdToRemove = "1234";
$.each(jsonArray, function(){
if(this.product_id != productIdToRemove){
newArray.push(this);
}
});
//Now newArray will not have '1234'
关于JavaScript 推送到数组对象不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7097733/