簡體   English   中英

迭代並“選擇”jQuery DataTables行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM