jQuery和选择器

jQuery和选择器,jquery,jquery-selectors,selector,Jquery,Jquery Selectors,Selector,我的页面上有一个datagrid(asp.net)。我想选择第一列中有“foo”一词,第二列中有“bar”一词的所有行 我只知道第一栏怎么写 jQuery('[id$="datagrid1"] tr td:contains(foo)') 有人能告诉我如何包含第二列的条件吗?第二列有“bar”一词 编辑: 还有,我如何精确匹配单词?当单元格包含单词时,As selectorcontains匹配。如果第二列与第一列相邻,则可以使用。使用.filter()可获得最大的灵活性: jQuery('[id

我的页面上有一个datagrid(asp.net)。我想选择第一列中有“foo”一词,第二列中有“bar”一词的所有行

我只知道第一栏怎么写

jQuery('[id$="datagrid1"] tr td:contains(foo)')
有人能告诉我如何包含第二列的条件吗?第二列有“bar”一词

编辑:
还有,我如何精确匹配单词?当单元格包含单词时,As selector
contains
匹配。

如果第二列
与第一列

相邻,则可以使用。使用
.filter()
可获得最大的灵活性:

jQuery('[id$="datagrid1"] tr').filter(function () {
    return $('td:eq(0)', this).text() == 'foo' &&
        $('td:eq(1)', this).text() == 'bar';
});
  • .filter()
    函数遍历每个元素,并希望您返回
    true
    false
    ,以指示是否应保留该元素(匹配)
  • :eq()
    选择器允许您在匹配集内选择索引
    • 像这样:

      jQuery('[id$="datagrid1"] tr').filter(function(){
         var $tds = $(this).find("td");
         return ($tds.eq(0).text()=="foo" && $tds.eq(1).text()=="bar");
      });
      
      同样的代码更“解释”

      $trs = jQuery('[id$="datagrid1"] tr').filter(function(){
         var $first_td = $(this).find("td").eq(0);  //First column
         var $second_td = $(this).find("td").eq(1); //Second column
         return ($first_td.text()=="foo" && $second_td.text()=="bar"); //Condition to filter
      });
      
      这将返回一组与所需条件匹配的


      希望这有帮助。干杯

      我尝试了jerluc的建议,这段代码似乎很有效:
      jQuery('[id$=“datagrid1”]tr td:contains(foo)+td:contains(bar)
      @StarCub,但正如您所提到的,它与单词不完全匹配。它也严格地不只是看第一列和第二列,如果你有更多的列,它会尝试匹配第二列和第三列,等等。谢谢你的回答。我只能选择一个答案,@Box9先回答。