2017-04-05 62 views
1

我有一個包含詳細行的數據表,類似於示例here。我想要做的是刪除顯示沒有子數據的行的+/i圖標的類。應該很容易,但對我來說,我無法從每行的第一個td中刪除類。刪除DataTable中每行的第一個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 
} 
+1

'td.className'永遠是'undefined'因爲'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」)' – nnnnnn

+0

只需在瀏覽器中單擊右鍵並檢查元素即可。 –

+0

最終做了什麼是$(node).find(「。dh-dtbl-details_control」)。removeClass(「dh-dtbl-details-control」)。我用$(row)試了一下,但沒有奏效。這對我來說有點新鮮,所以我需要深入挖掘並找出節點vs行的不同之處。 – southfanning

回答

0

什麼最終做到了爲$(節點).find( 「DH-DTBL-details_control 」)。removeClass(「 DH-DTB -1-細節控」)。

見什麼在正確的方向指向我的意見