我试图循环遍历以“Held”开头的每个div,如果它不存在于另一个对象中,请选中将其删除。
这就是我所做的
$.each($("div[id^='Held']"), function(key, val){
var divName = $(this).attr('id');
var uniqueId = divName.replace('Held', '');
if ($.inArray(uniqueId, data.onHold) === -1){
$('#' + ivName).remove();
}
});
我也尝试了这种语法
$("div[id^='Held']").each(function(key, val){
var divName = $(this).attr('id');
var uniqueId = divName.replace('Held', '');
if ($.inArray(uniqueId, data.onHold) === -1){
$('#' + ivName).remove();
}
});
但它没有按预期删除div
答案 0 :(得分:1)
问题在于搜索项目是否在数组中。 My Array在每个值中都有一个对象。
以下是我为解决此问题所做的工作
data=[];
data[0] = [{
"num": 29,
"ser": 1,
}, {
"num": 44,
"ser": 2,
}]
data[1]=[{
"num": 10,
"ser": 3,
}]
allData = data.reduce(function (a, b) { return a.concat(b) });
// the following line gives me an error
var MDData=JSON.parse(sessionStorage.MDData);
if (MDData!==null) {console.log("Hello")}
sessionStorage.setItem('MyData', JSON.stringify(allData));
答案 1 :(得分:0)
我会使用key
参数:
var elms = $("div[id^='Held']");
elms.each(function(key, val){
var divName = $(this).attr('id');
var uniqueId = divName.replace('Held', '');
if ($.inArray(uniqueId, data.onHold) === -1){
elms.eq(key).remove();
}
});
答案 2 :(得分:0)
当您已经在变量中删除了要删除的元素时,无需使用选择器。
$("div[id^='Held']").each(function(){
var divName = this.id;
var uniqueId = divName.replace('Held', '');
if ($.inArray(uniqueId, data.onHold) === -1){
$(this).remove();
}
});
您也可以使用.filter
:
$("div[id^='Held']").filter(function() {
var uniqueId = this.id.replace('Held', '');
return $.inArray(uniqueId, data.onHold) === -1;
}).remove();