[英]Iterating through and 'selecting' jQuery DataTables rows
我正在使用jQuery DataTables 1.10.3創建一個表,其中包含從Web服務獲取的JSON數據。 數據鏈接到我的應用程序頁面上的其他元素,這樣當用戶在一個元素中選擇數據點時,DataTable應該更新並“選擇”補充行(只需將active
類添加到行<tr>
標記中)。 鑒於文檔 ,似乎可以通過以下方式輕松完成:
var table = $("#my-table").DataTable();
table.rows().each(function(r){
if (r.data().category == 'XYZ'){
r.node().to$().addClass("active");
}
});
但這不起作用,因為.rows()
返回行索引數組而不是行對象。 相反,我實現了這個:
var table = $("#my-table").DataTable();
table.rows().indexes().each(function(i){
var r = table.row(i);
if (r.data().category == 'XYZ'){
r.node().to$().addClass("active");
}
});
考慮到表中記錄的數量相對較少(3000行約3秒),這種方法很有效,但速度極慢。 有沒有更好的方法來迭代我缺少的DataTable行? 或者是否可以根據數據值進行行選擇? 有關.rows()
返回API對象的文檔不正確嗎?
好吧,我找到了第二個問題的答案:
或者是否可以根據數據值進行行選擇?
var table = $("#my-table").DataTable();
table.rows(function(idx, data, node){
return data.category == 'XYZ' ? true: false;
}).nodes().to$().addClass("active");
這幾乎是立即運行,所以它處理我的用例,但我仍然想知道以更一般的方式迭代行的最佳方法是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.