我的页面上有一个datagrid(asp.net)。我想选择第一列中包含'foo'一词的所有行,并在第二列中选择'bar'一词。
我只知道如何为第一列做到这一点。
jQuery('[id$="datagrid1"] tr td:contains(foo)')
任何人都可以告诉我如何在第二栏中加入“bar”这个词的条件吗?
修改
另外,我该如何准确匹配这个词?当单元格包含单词时,选择器contains
匹配。
答案 0 :(得分:6)
选择器只能让你到目前为止。使用.filter()
可获得最大的灵活性:
jQuery('[id$="datagrid1"] tr').filter(function () {
return $('td:eq(0)', this).text() == 'foo' &&
$('td:eq(1)', this).text() == 'bar';
});
.filter()
函数遍历每个元素,并希望您返回true
或false
以指示元素是否应保留(匹配)。:eq()
选择器允许您在匹配的集合中选择索引。答案 1 :(得分:3)
像这样:
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
});
这将返回一组符合您想要条件的<tr>
。
希望这会有所帮助。干杯
答案 2 :(得分:2)
您可以使用next-sibling selector,假设第二列<td>
与第一列<td>
相邻