2012-02-22 104 views
0

有表来搜索和高亮按照参数搜索特定的列

当用户滑动滑块值的变化和作为每值它突出TD。

  1. 因此,根据列应突出显示。目前我已经添加了 类到td(如col-1,col-2 ..),但是可以在没有 添加类的情况下完成。

  2. 当值为“2”时,“12”也会突出显示。在这件事上可以做什么 ?

Live URL

jQuery("#slider-vertical").slider({ // First Slider Voltage 
      orientation: "vertical", 
      range: "min", 
      min: 2, 
      max: 16, 
      step: 2, 
      slide: function(event, ui) {    
       jQuery("#amount").val(ui.value); 
       jQuery("#tableData td.col-1").removeClass("jquery-colorBG-highLight"); // add 
       var highlightTD = jQuery('#tableData tr td.col-1:contains(\'' + ui.value + '\')');    
       highlightTD.addClass("jquery-colorBG-highLight"); 
      } 
     }); 

enter image description here

+0

只是想知道你的句子“但是能这样不添加类来完成。”添加/删除类有问题吗?其他选项将使用.css,但我认为您添加和删除类是一个很好的解决方案。 – Tx3 2012-02-22 08:02:14

+0

根据列向所有TD添加类,我认为是减缓脚本渲染速度。 [索引]是选项。 – 2012-02-22 08:10:41

回答

3

1)我猜添加类到相应的TD的是得到你想要的一个很好的方式。

2)我不认为这是一个CSS选择器判断的内容相等,但你可以使用过滤器:

var highlightTD = jQuery('#tableData tr td.col-1').filter(function() { 
    return $(this).text() == ui.value; 
}); 
2

凡为它增加了班我会做一个部分是:

相反的:

var highlightTD = jQuery('#tableData tr td.col-1:contains(\'' + ui.value + '\')');    
highlightTD.addClass("jquery-colorBG-highLight"); 

试试这个:

$('#tableData tr td.col-1').each(function(){ 
    if ($(this).text() == ui.value()) { 
     $(this).addClass("jquery-colorBG-highLight"); 
    } 

});    
1
  1. 要选择一个表中的列,你将要使用的第n个孩子()选择: $('#tableData tr td:nth-child(2)')
  2. 的“12”单元时选择“2”,因为:contains()基本匹配字符串。由于“2”在技术上属于“12”,因此您需要进行不同的比较。像这样的东西可能会奏效:

    $('#tableData tr td:nth-child(2)').filter(function(){ 
        if($(this).html() == ui.value) 
         $(this).addClass('highlight'); 
    });