JavaScript 推送到数组对象不起作用

标签 javascript json

我有一个如下所示的 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 错误。

JSONJSON.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/

相关文章:

javascript - 没有拉伸(stretch)或溢出的图像宽度和高度

python - 如何在 RESTful Flask 应用程序中将 Pandas DataFrame 序列化/反序列化为 ProtoBuf/Gzip?

java - 谷歌日历: Cannot find com. google.api.client.json.JsonFactory.fromInputStream

javascript - Knockoutjs - 单击按钮时打开选择下拉菜单

javascript - Vue.js 更新数组的内容

javascript - jquery.cookie.js mod_security 错误 406 和问号

javascript持久选择

json - 类型 '[String:Any]' 在 Swift 中没有下标成员

javascript - 使用 Javascript 打印 JSON 数据

java - 在android中解析json数组中的JSON数组