Jquery 从DataTable中每行的第一个td中删除类
我有一个带有细节行的datatable,类似于示例。我要做的是删除为没有子数据的行显示+/I图标的类。这应该很容易,但就我个人而言,我无法正确地从每行的第一个td中删除该类 我的桌子。第一列只是一个图标,由类“dh dtbl details control”添加。它被添加到每一行Jquery 从DataTable中每行的第一个td中删除类,jquery,datatable,datatables-1.10,Jquery,Datatable,Datatables 1.10,我有一个带有细节行的datatable,类似于示例。我要做的是删除为没有子数据的行显示+/I图标的类。这应该很容易,但就我个人而言,我无法正确地从每行的第一个td中删除该类 我的桌子。第一列只是一个图标,由类“dh dtbl details control”添加。它被添加到每一行 var oTable = $('#dh_phleb_tblComp').DataTable({ data: oColls.accs, orderClasses: false, "stripeCl
var oTable = $('#dh_phleb_tblComp').DataTable({
data: oColls.accs,
orderClasses: false,
"stripeClasses":['stripe1','stripe2'],
columns:[
{
"class":"dh-dtbl-details-control",
"orderable": false,
"data": null,
"defaultContent": ""
},
{data: 'collection_priority_disp'},
{data: 'encntr_location'}
]
});
创建表后,我将遍历行,检查子数据。这个很好用。我遇到的问题是,将td与所讨论的类标识在一起,这样我就可以删除它。任何帮助都将不胜感激
oTable.rows().data().each(function(value, index, id) {
var row = oTable.row(index);
var node = oTable.row(index).node();
if (value.container_cnt === 0){
alert("no containers");
var td = $(row).find("td:first"); //doesn't seem to be right
alert(td.className); //returning 'undefined'
//$('td', row).removeClass("dh-dtbl-details-control"); //what I want to do
}
它最终做的是$(node.find(“.dh-dtbl-details_control”).removeClass(“dh-dtbl-详细信息-控制”)
请参阅评论,了解是什么指引了我正确的方向你离它很近,事实上你给了我一个项目的想法
var oTable = $('#dh_phleb_tblComp').DataTable({
data: oColls.accs,
orderClasses: false,
"stripeClasses": ['stripe1', 'stripe2'],
columns: [
{
"class": "dh-dtbl-details-control",
"orderable": false,
"data": null,
"defaultContent": ""
},
{data: 'collection_priority_disp'},
{data: 'encntr_location'}
],
// here you iterate each created row and ask for the first td and then you remove
// or add , or whatever you want to assign to this fist TD
"createdRow": function (row, data) {
$(row).find("td:first").removeClass('dh-dtbl-details-control');
}
});
td.className
将始终是未定义的
,因为td
是一个jQuery对象,而不是DOM元素,所以它没有.className
属性。假设row
是有问题的行,那么$(row).find(“td:first”).removeClass(“dh-dtbl-details control”)
应该可以工作,或者$(row.find(“.dh-dtbl-details control”).removeClass(“dh-dtbl-details control”)
只需在浏览器中右键单击并检查元素。它最终做的是$(node).find(.dh-dtbl-details\u control)).removeClass(“dh dtbl详细信息控制”)。我用$(行)试过了,但没用。这对我来说有点陌生,所以我需要深入研究,找出node和row的不同之处。@southfanningnode
是DOM节点,row
是dataTable API row实例。您可以执行table.row(index.nodes().to$().find(“.dh-dtbl-details\u control”).removeClass(“dh-dtbl-details-control“
(即,整个内容在一个表达式中)。回答并接受你自己的问题是完全可以的。也许它将来会帮助其他人。