有没有一种很好的方法可以将选定的元素过滤到几个类?我知道我可以一次做一个,但这似乎是 jQuery 允许的。
这些是用 ajax 提供的,我无权定义实际的 html。
$('.val>td').each(function () {
$(this).filter('.price,.quantity,.remove').children().children().addClass('hidetaxfields');
});
从您给出的示例中,您所问的内容并不清楚...
这将生成与具有类one
OR的初始选择器匹配的元素的子集two
:
$(selector).filter('.one, .two');
这将生成与初始选择器匹配的元素的子集,这些元素具有两个类one
AND two
:
$(selector).filter('.one.two');
使用该.is()
方法应该有效:
$('.val>td').each(function () {
var $this = $(this);
if( $this.is('.price, .quantity, .remove') ){
$this.children().children().addClass('hidetaxfields');
}
});
但这更好:
$('.val>td.price, .val>td.quantity, .val>td.remove').each(function () {
$(this).children().children().addClass('hidetaxfields');
});
或这个:
var $tds = $('.val>td').filter('.price, .quantity, .remove');
$tds.each(function () {
$(this).children().children().addClass('hidetaxfields');
});
使用过滤器,您可以编写一个过滤器函数,可以像这样(演示):
$('.val>td').filter(function () {
var that = $(this);
return that.hasClass('price') || that.hasClass('remove') || that.hasClass('quantity');
}).addClass('hidetaxfields');