我的网页上有一个隐藏字段,我想存储一组对象。这个html是:
<div><input type="hidden" id="CheckedSubGroups" value="[]" /></div>
然后我有以下jQuery:
$(".SubGroupCheckBoxes").on("click", function() {
if ($(this).is(':checked')) {
var array = $("#CheckedSubGroups").val();
array.push('test object');
$("#CheckedSubGroups").val(array);
} else
// do other stuff
然而,这会引发“此对象不支持push属性或方法”错误
在调试器中,我已停在此行并检查数组对象的值,该值为“[]”
答案 0 :(得分:2)
您是否尝试使用JSON处理它?喜欢......
var array = JSON.parse($("#CheckedSubGroups").val());
$("#CheckedSubGroups").val(JSON.stringify(array);
$(".SubGroupCheckBoxes").on("click", function() {
if (this.checked) {
var array = JSON.parse($("#CheckedSubGroups").val());
array.push('test object');
$("#CheckedSubGroups").val(JSON.stringify(array));
} else
// do other stuff
}
});
答案 1 :(得分:1)
我认为$("#CheckedSubGroups").val()
可能会返回一个字符串而不是一个数组。
因此,您应该在调用push
方法
var array = JSON.parse($("#CheckedSubGroups").val());
答案 2 :(得分:0)
您不会将推送值定向到数组中。您必须需要一个数组对象。您的变量值需要转换为数组对象。
push()方法将新项添加到数组的末尾,然后返回 新的长度。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");