14

選択した要素をいくつかのクラスにフィルタリングするための優れた方法はありますか?一度に1つずつ実行できることはわかっていますが、これはjQueryで許可されているように見えました。

これらはajaxで提供されており、実際のhtmlを定義するためのアクセス権がありません。

$('.val>td').each(function () {
    $(this).filter('.price,.quantity,.remove').children().children().addClass('hidetaxfields');
});
4

3 に答える 3

24

あなたが求めていることは、あなたが与える例からは明らかではありません...

oneこれにより、クラスORを持つ初期セレクターによって一致する要素のサブセットが生成されますtwo

$(selector).filter('.one, .two');

oneこれにより、クラスとtwo:の両方を持つ初期セレクターによって一致する要素のサブセットが生成されます。

$(selector).filter('.one.two');
于 2013-02-27T01:25:23.953 に答える
2

メソッドの使用は.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');
});
于 2013-02-27T01:25:20.867 に答える
2

filterを使用すると、次のように実行できるフィルター関数を記述できます(デモ)。

$('.val>td').filter(function () {
    var that = $(this);
    return that.hasClass('price') || that.hasClass('remove') || that.hasClass('quantity');
}).addClass('hidetaxfields');
于 2013-02-27T01:25:30.557 に答える