如何在jQuery中查找表中的匹配数据

时间:2015-08-19 08:32:29

标签: jquery html-table

在表格数据中,我想突出显示一列为活动列, 所以我想在表<tr>中找到一个具体的值。

例如,在临时值中我得到 - “8h” 我必须在一个<tr>中找到8h值并将其作为该列的活动值。

var temp = substr[0] + " h";
                var MyRows = $("#tbl_forecast tr:nth-child(2)")
                for (var i = 0; i < MyRows.length; i++) {                    
                    if (temp.trim() == $("#tb_forecast tr:nth-child(2)").find('td:eq(i)').html())
                    {                        
                        $("#tbl_forecast td:nth-child(i)").addClass("td_active")
                    }
                }

2 个答案:

答案 0 :(得分:1)

您可以使用:contains选择器查找td内的数据,请尝试以下代码:

var temp = substr[0] + " h";
// or use nth-child for second row selector
// $("#tbl_forecast tr:nth-child(2)")
// as below code will iterate all rows and find `td`
$('#tbl_forecast tr').find("td:contains('"+temp.trim()+"')").addClass('active');

<强> DEMO

答案 1 :(得分:0)

您可以使用

  1. filter() 获取td, index() 获取该指数
  2. 现在使用该索引在 :nth-child() 选择器
  3. 的帮助下将列添加到列中

    var temp = substr[0] + " h";
    var MyRows = $("#tbl_forecast tr:nth-child(2)"),rows=$("#tbl_forecast tr");
    var index = MyRows.find('td').filter(function() {
      return temp.trim() == $(thid).text();
    }).index();
    rows.find('td:nth-child(' + index + ')').addClass('active');