Jquery 从DataTable中每行的第一个td中删除类

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

我有一个带有细节行的datatable,类似于示例。我要做的是删除为没有子数据的行显示+/I图标的类。这应该很容易,但就我个人而言,我无法正确地从每行的第一个td中删除该类

我的桌子。第一列只是一个图标,由类“dh dtbl details control”添加。它被添加到每一行

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-dtb‌​l-详细信息-控制”)


请参阅评论,了解是什么指引了我正确的方向

你离它很近,事实上你给了我一个项目的想法

 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的不同之处。@southfanning
node
是DOM节点,
row
是dataTable API row实例。您可以执行
table.row(index.nodes().to$().find(“.dh-dtbl-details\u control”).removeClass(“dh-dtb‌​l-details-control“
(即,整个内容在一个表达式中)。回答并接受你自己的问题是完全可以的。也许它将来会帮助其他人。