我有一个表,其中包含每个/每行的复选框选项和"检查所有"选择当前页面上的所有行。
他们看起来像是:
$(".chkAll").click(function () {//check and uncheck all function
if ($(this).is(':checked')) {
table.rows().select(this.checked);
var rowcollection = table.$("input:checkbox[class=checkItem]", { "page": "all" });
rowcollection.each(function (index, elem) {
//$row.find('td:eq(2)').find('a:eq(0)').text($('.inputedTitle').val());
_SingleScannedItemIds.push(
{
"title": $(elem).attr("ebaytitle"),
"price": $(elem).attr("ebayprice"),
"itemid": $(elem).attr("ebayitemid"),
});
$(elem).prop("checked", true);
console.log(_SingleScannedItemIds);
});
}
else {
table.rows().deselect(this.checked);
_SingleScannedItemIds = [];
$('input:checkbox').removeAttr('checked');
}
});
其中_SingleScannedItemIds定义如下:
_SingleScannedItemIds = [];
现在我有一个数据表,我想在行渲染时检查这个对象数组是否包含这个特定的元素:
"columns": [
{
"sWidth": "1%",
"data": "ItemID",
"name": "Checkbox",
"render": function (data, type, row) {
console.log(contains(_SingleScannedItemIds,"itemid"));
if (_SingleScannedItemIds.some(item => item.itemid=== row.itemid)) {
return 'checked';
}
return 'not checked';
console.log("not checked");
},
"autoWidth": true
}]
因此渲染的td有一个名为" itemid"的属性。我的对象数组也包含" itemid"属性..
现在我只需要匹配,如果它确实包含它为渲染的TD ...如果确实如此,我只是想在控制台中写出它像console.log("有&# 34;)或其他什么?
我尝试过使用"一些" javascript中的方法和以下方法:
function contains(a, obj) {
for (var i = 0; i < a.length; i++) {
if (JSON.stringify(a[i]) === JSON.stringify(obj)) {
return true;
}
}
return false;
}
但没有人工作......我在这里做错了什么?