提问人:Afnan A. 提问时间:8/21/2019 最后编辑:Afnan A. 更新时间:8/21/2019 访问量:1904
无法读取 jQuery 中未定义的属性“slice”
Cannot read property 'slice' of undefined in jQuery
问:
我正在使用数组中的函数。当数组值的前半部分具有相同的字符串时,它会显示此错误。 来自一个按钮,该按钮总是具有不同的值,即 , 。slice()
$.each()
$name
question1
question2
我尝试过当数组像然后函数工作正常时,但是当我推送更多以开头的值并希望删除这些值时,控制台中会显示错误。var arr = ["question1Answer1", "question2Answer2"];
question2
var arr = ["question1Answer1", "question2Answer2", "question2Answer3"];
refreshArrange = function($name) {
$.each(arr, function(index, value) {
var newStr = '';
newStr = value.slice(0, 9);
if(newStr == $name) {
var ind = arr.indexOf(value);
if (ind > -1) {
arr.splice(ind, 1);
console.log('working Ok');
}
}else {
}
});
console.log(arr);
}
我想删除数组的第 2 个和第 3 个值,因为即将到来的值是 。我正在拆分数组值,并将前半部分与它进行比较并删除它。但是会发生此错误。
我不知道问题出在哪里。$name
question2
$name
实际上,我想删除从$name
如果这是一个愚蠢的问题,我很抱歉。我知道我没有正确解释这个问题。
答:
0赞
Ryan Nghiem
8/21/2019
#1
因为您在用于此数组时拼接了一个数组each
arr.splice(ind, 1);
你可以试试我的代码:
var arr = ["question1Answer1", "question2Answer2", "question2Answer3"];
var refreshArrange = function($name) {
var result = [];
$.each(arr, function(index, value) {
// var newStr2 = '';
var newStr = value.slice(0, 9);
// newStr2 = value.slice(0, 10);
if(newStr == $name) {
}else {
result.push(value)
}
});
console.log(result);
}
refreshArrange('question2');
那么 variable 就是你期望的结果result
评论
0赞
Afnan A.
8/21/2019
这是一把工作小提琴......对于每个答案,都有刷新按钮,当您单击答案两次然后刷新它时,它将在控制台中显示切片错误。为什么?jsfiddle.net/afnan03/gsj9kych
评论
arr[0]
arr
$name
$name