如果我有一个有4000行的表
<table>
<tr class="a b c d e f g"><td>xxx</td></tr>
<tr class="a c d e f g"><td>xxx</td></tr>
<tr class="d e f g"><td>xxx</td></tr>
<tr class="a d e f g"><td>xxx</td></tr>
.
.
.
.
.
</table>
如果我想选择哪些行 上课 (a或b或c)和(d或e)和(a或g)
如何编写选择器语句?
谢谢
答案 0 :(得分:12)
试试这个:
$('.a, .b, .c').filter('.d, .e').filter('.a, .g')
答案 1 :(得分:0)
首先,4000行看起来有点过分,无论你如何看待它都会变慢。如果您只是想使用JQuery根据许多不同的类类型选择所有行,只需使用多选择器语法:
$('.a, .b, .c')...
这将选择具有类a,b或c的所有元素。从那里你可以使用$ .filter()函数进一步过滤列表与其他类类型:
$('.a, .b, .c').filter('.d, .e')...
首先选择所有带有a,b或c类的元素,然后它将过滤掉任何不包含d类或e类的元素。您可以根据需要进行多次过滤,一旦到达最终列表,就可以使用$ .each()函数迭代所有结果:
$result.each(function() { do stuff... });
答案 2 :(得分:0)
试试这个:
$(document).ready(function() {
var items = $('.a,.b,.c').filter(function() {
var classes = $(this).prop('class').split(' ');
return (classes.indexOf('d') > 0 || classes.indexOf('e') > 0) && (classes.indexOf('a') > 0 || classes.indexOf('g') > 0)
});
items.find('td').css('color', 'red');
});