我正在努力学习如何遍历jQuery dataTable中的行,而不是做得非常好。
我的表格ID是“partslist”。所以:
$("#partslist tr").each(function() {
$($(this) + " td").each(function() {
alert($(this).text());
})
})
你可以看到:
$($(this)+“td”)。每个......
是一个很大的脂肪失败。我想循环遍历每一行中的列。有趣的是,有了dataTables网站上的所有这些例子,我找不到一个可以让我轻松从表中获取数据的例子。
答案 0 :(得分:2)
你可以这样做:
$("#partslist tr").each(function() {
$(this).find("td").each(function() {
alert($(this).text());
})
})
找到选择tr的所有td
或者
$("#partslist tr").each(function() {
$("td",$(this)).each(function() {
alert($(this).text());
})
})
使用tr的选择作为范围或“上下文”
来查找所有td这两者都完成了同样的事情。
答案 1 :(得分:1)
$("#partslist tr").each(function() {
$("td", this).each(function() {
alert($(this).text());
})
});
答案 2 :(得分: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
}
});
答案 3 :(得分:0)
您可以$(this).children('td').each...
或$(this + ' td').each...
。我认为任何一个都可以工作,但我也没有测试。