4

6つの要素のセットがあり、2番目と3番目の要素ごとにフィルタリングしたいので、要素2、3、5、6を作成します。試しまし.filter(':nth-child(2n+1)'));たが、明らかに2、4、6をフィルタリングします。

私が試みていたもう1つの方法は、要素1と4を削除することでしたが、セットから要素を削除するフィルターの反対のjQuery関数が見つかりませんでした。

4

5 に答える 5

4
.filter(':not(:nth-child(1),:nth-child(4))')

http://jsbin.com/owosuw/2/edit#source

于 2012-04-09T19:22:49.457 に答える
3

あなたの例を見ると、私はあなたが実際に2nと3nを望んでいないと思います。あなたは3つのすべてのグループの2番目と3番目が欲しいですか?次に、これらのいずれかが機能するはずです。

.filter(':nth-child(3n+2), :nth-child(3n+3)'));
.filter(':not(:nth-child(3n+1))');
于 2012-04-09T19:32:02.067 に答える
2

filter関数(一致した要素のゼロベースの数である単一のパラメーターを受け取る)で使用することもできます。

$('div').filter( function(n) { return n%3!=0 } )

ここで私のJSFiddleの概念実証を参照してください。

http://jsfiddle.net/4c4Re/

于 2012-04-09T19:39:30.537 に答える
1

たった1つではできないと思いますnth-child。何をしたいのかわかりませんが、スタイル、クラス、イベントなど、そのカテゴリの何かを指定したい場合は、それらすべてを指定して、1番目と4番目から削除できます。

$('div').addClass('red');

$('div:nth-child(3n+1)').removeClass('red');

実例: http: //jsfiddle.net/gnbMH/


nth-childまた、2つのを使用して機能させることもできます。

$('div:nth-child(3n+2)').addClass('red');
$('div:nth-child(3n+3)').addClass('red');

実例: http: //jsfiddle.net/gnbMH/1/


また、2つを組み合わせると、nth-child次のようになります。

var elems = $('div:nth-child(3n+2)');
$('div:nth-child(3n+3)').each(function(i,elem) {
    elems.push(elem);
});

$(elems).addClass('red');

実例: http: //jsfiddle.net/gnbMH/2/

于 2012-04-09T19:24:40.907 に答える
0

使ってみてください:not(:nth-child(3n+1))..のようなもの.filter(':not(:nth-child(3n+1))').

デモ

于 2012-04-09T19:31:31.637 に答える