我想使用jQuery选择表中没有包含特定文本的td
的所有行。
我可以用这一行选择行:
var x = $('td:contains("text"):parent'); //muliple td's in each tr
如何使用:not
选择器反转选择?
编辑:我不认为上面的代码行真的很准确。这就是我最初的路线:
var x = $('td:contains("text")).parent(); //muliple td's in each tr
当我试图反转选择时,我得到所有行,因为它们都碰巧包含不包含文本的td。
答案 0 :(得分:5)
答案 1 :(得分:2)
案例1:选择所有包含所有道明文字“我的文字”的TR
我不会过分依赖伪。使用过滤器尝试类似下面的内容(内部伪也会做同样的事情)
$('tr').filter(function () {
return $(this).find('td').filter(function () {
return $(this).text().indexOf('myText') == -1;
}).length;
}); //would return all tr without text 'myText'
DEMO: http://jsfiddle.net/dWuzA/
案例2:选择所有包含任何道明文字“我的文字”的TR
@squint在评论中提出了一个很好的观点
因此,如果您想要选择包含的所有TR在任何TD中没有特定文本,那么您可以反转条件..见下文,
DEMO: http://jsfiddle.net/dWuzA/1/
$(function () {
$('tr').filter(function () {
return !$(this).find('td').filter(function () {
return $(this).text().indexOf('22') != -1;
}).length;
}).addClass('highlight');
});