2011-11-26 60 views
2

我努力學習如何遍歷jQuery數據表中的行,而不是做得太糟糕。

我的表格ID是「partslist」。所以:

$("#partslist tr").each(function() { 
     $($(this) + " td").each(function() { 
      alert($(this).text()); 
     }) 
    }) 

你可以看到:

$($(本)+ 「TD」)各...

是一個大胖子失敗。我想遍歷每一行中的列。有趣的是,通過dataTables網站上的所有示例,我找不到能讓我輕鬆從表格中獲取數據的單個示例。

回答

2

,你可以這樣做:

$("#partslist tr").each(function() { 
     $(this).find("td").each(function() { 
      alert($(this).text()); 
     }) 
    }) 

其中找到所有的TD在選擇的TR的

或本

$("#partslist tr").each(function() { 
     $("td",$(this)).each(function() { 
      alert($(this).text()); 
     }) 
    }) 

其中找到所有的TD的使用TR的AS的選擇範圍或「上下文」

這些都完成相同的事情。

+1

應該是'$(「TD」,$(本))' –

+1

感謝您的收穫,我修好了。 –

0

你可以做$(this).children('td').each...,或只是$(this + ' td').each...。我認爲任何一個將工作,但我沒有測試。

1
$("#partslist tr").each(function() { 
    $("td", this).each(function() { 
     alert($(this).text()); 
    }) 
}); 
1

另一個處理jQuery DataTables數據的地方是在fnRowCallback中。這是一個初始化參數,它提供了獲取數據並逐行提供更新的理想位置。另外,由於內部渲染功能已經在創建和緩存某些對象,因此效率更高。

當然有理由希望數據渲染後,但你的問題並不表示你的用例。下面是在節點被附加到DOM之前操作行的示例。

這是一個假的例子。想象一下,在我的數據被返回(一個2D對象,所以我不通過名稱索引訪問它),我的第二列包含一個字符串表示一個部分的條件。爲了簡單起見,有兩種選擇:新建或再製造。實際上,我通過一個簡短形式的字符串,雖然如此,我想將它轉化成一個完整的字顯示它之前:

var oTable = $('#partslist').dataTable({ 
// ...other initialization parameters can go in here, too... 
    fnRowCallback: function(nRow, aData) { 
    var condition = aData[1]; // second column of the data object if it's a 2D object 
    var conditionFull = "New"; // by default, parts are in new condition 
    if (condition == "reman") { 
     conditionFull = "Remanufactured"; 
    } 
    $('td:eq(1)', nRow).text(conditionFull); // use jQuery to select the second VISIBLE (HTML) column and update the text  
    } 
}); 
+0

+1感謝您的全面回答。我還有其他用例,這將派上用場! – AKWF