У меня есть таблица, в которой есть опции флажков для каждой / отдельной строки и опция «проверить все», чтобы выбрать все строки на текущей странице.
Они выглядят следующим образом:
$(".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 ("has") или что-то еще?
Я пытался использовать метод "some" в 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;
}
Но никто не работал ... Что я здесь не так делаю?