9

重複の可能性:
jQuery:notセレクターと:nth-​​childセレクターの組み合わせ

これは可能ですか?

これが私のコードです:

$("ul#filterlist li:nth-child(3n)").css("marginTop", "0");

それをリストに適用したいが、リストに表示されているアイテムにのみ適用したい場合(一部は非表示になり、カウントされたくない)、どのように達成されますか?私は次のようなことを考えていました:

$("ul#filterlist li:nth-child(3n)").not(":hidden").css("marginTop", "0");

しかし、それは機能しません。:visibleで試してみるものもありません

何か案は?ありがとう。

4

3 に答える 3

13

あなたが探している方法はですfilter()。指定されたセレクターに基づいて、jQueryオブジェクトのリストをフィルターで絞り込みます。「not :hidden」セレクターが見つからなかったので、反対のセレクターを使用しました:visible

$("ul#filterlist li:nth-child(3n)").filter(":visible").css("marginTop", "0");

お役に立てれば!

于 2012-10-26T04:43:55.807 に答える
2

非表示の要素を数えたくない場合は、次のコードを使用してみてください。

$("ul#filterlist li:visible").filter(function(index){ 
    return (index+1)%3 == 0?true:false;
}).css("marginTop", "0");

ここでjsfiddleの例を参照してください

于 2012-10-26T08:56:43.177 に答える
1

:selectorsをチェーンしてみてください

$("ul#filterlist li:nth-child(3n):not(:hidden)").css("marginTop", "0");

この答えに示されているように:

jQuery-複数:セレクターではありません

于 2012-10-26T04:47:12.773 に答える