Javascript 无法读取属性';推动';未定义的
我试图将Javascript 无法读取属性';推动';未定义的,javascript,jquery,Javascript,Jquery,我试图将数据属性值推入数组参数,但它在参数[parent]行抛出上述错误 var parameter = {}; var currentTabSelected = ""; var parent = ""; $("#categories").on("click", ":checkbox", function () { if($(this).is(":checked")) { parent = $(this).data("parent"); console
数据
属性值推入数组参数,但它在参数[parent]行抛出上述错误强>
var parameter = {};
var currentTabSelected = "";
var parent = "";
$("#categories").on("click", ":checkbox", function () {
if($(this).is(":checked")) {
parent = $(this).data("parent");
console.log(parent)
if (!(currentTabSelected in parameter)) {
parameter[currentTabSelected] = []
}
var found = $.inArray($(this).val(), parameter[currentTabSelected]) > -1;
if (!found) {
parameter[currentTabSelected].push($(this).val());
parameter[parent].push(parent);
console.log(parameter)
}
} else {
var index = parameter[currentTabSelected].indexOf($(this).val());
var parent_index = parameter[parent].indexOf(parent)
if (index > -1) {
parameter[currentTabSelected].splice(index, 1);
parameter[parent].splice(parent_index , 1);
}
}
})
如何克服上述问题?如果参数是对象,则应在使用它们之前创建关键点。
您正在尝试访问参数中不存在的密钥
例如,确保对象包含currentTabSelected
和parent
:
parameter[currentTabSelected] = []
parameter[parent] = []
在初始化
currentTabSelected
和parent
之后,您可以对参数[currentTabSelected]
执行操作,参数[parent]
我几天前遇到了相同的问题,解决方案与“this”关键字直接相关。您的“this”是指您的变量不属于的另一个范围。你可能想做一个
var that=this;
或者,如果您熟悉ES6,可以使用箭头函数语法。哪里定义了
参数数组?哪里定义了参数?旁注:这里不需要任何内部()
:如果(!(找到)){
只要如果(!找到)
在语义上相同且更典型。参数[currentTabSelected]=[]是一个数组,但参数[paernt]不是,然后你会编辑例外以包含arrrayNo,他们正确地使用了这个
。它由jQuery设置为引用单击事件所连接的元素。非常感谢你重新选择了它。斜体并没有太好。:-)