javascript - 突出显示包含相同列信息的数据表行

标签 javascript jquery datatables

我有一个数据表,我需要突出显示第 2 列和第 3 列中具有相同值的行。如果一行具有相同的 2 个值,则突出显示它们。在数据表中执行此操作的最佳方法是什么。

目前我有一个 JQuery 函数将两个值组合成一个字符串并搜索表。但它效率不高且速度慢,并且如果超出第 1 页则无法找到重复项。

这是一个示例:http://jsfiddle.net/f9gs8ywt/1/

var data = { 
    data : [
         { id : 1, car: "toyota", order: "53421" },
         { id : 2, car: "ford", order: "53421" },
         { id : 3, car: "chevrolate", order: "13255" },
         { id : 4, car: "mazda", order: "23155" },
         { id : 5, car: "toyota", order: "51234" },
         { id : 6, car: "ford", order: "53421" },
         { id : 7, car: "BMW", order: "31312" },
         { id : 8, car: "Audi", order: "53412" },
         { id : 9, car: "toyota", order: "51234" },
         { id : 10, car: "BMW", order: "42123" },
         { id : 11, car: "Honda", order: "42153" },
         { id : 12, car: "Jeep", order: "31245" },
         { id : 13, car: "Lexus", order: "12344" },
         { id : 14, car: "toyota", order: "53421" },
         { id : 15, car: "Hyundai", order: "23411" },
         { id : 16, car: "Kia", order: "32415" },
         { id : 17, car: "toyota", order: "51234" },
         { id : 18, car: "Hyundai", order: "35123" }
     ]
 }

var table = $('#example').DataTable({
    data : data.data,
    columns : [
        { data: 'id', title: 'id' },
        { data: 'car', title: 'car' },
        { data: 'order', title: 'order' },    
    ]  
})  

table.draw()

最佳答案

您可以引用this answer它通过根据列值将 CSS 类分配给行来解决该问题。

具体来说,代码使用 fnRowCallback (或者您可以使用较新的 rowCallback )如下所示:

$('#example').dataTable({
    "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
        // aData is the columns array, and you can get
        // the required value using the correct index
        switch(aData[0]){
            case 'toyota':
                $(nRow).css('color', 'red')
                break;
            case 'audi':
                $(nRow).css('color', 'green')
                break;
            case 'lexus':
                $(nRow).css('color', 'blue')
                break;
        }
    }
});

希望这有帮助。

关于javascript - 突出显示包含相同列信息的数据表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47767338/

相关文章:

javascript - 重新加载数据表时双重ajax调用

javascript - 为什么 wysihtml5 没有加载到我的文本区域中?

javascript - 使用 CoffeeScript 动态添加字段到 simple_form

java - Android 自定义 WebView 无法找到加载的 HTML 中定义的 javascript 函数

javascript - 对工作 PHP 脚本的成功 AJAX 调用不返回任何内容

javascript - ajax从下拉列表更改内容不起作用

javascript - 自定义样式的复选框无法正常工作

datatables - 如何使用范围日期选择器过滤服务器端 jquery 数据表

javascript - 添加工具提示以展开数据表中的子行按钮

javascript - 搜索字符串并返回特殊字符后的所有值的函数