0

$(this).siblings()戻り値:

[<section style class=​"white">​…​&lt;/section>​
, <section style class=​"white">​…​&lt;/section>​
, <section style=​"display:​ none">​…​&lt;/section>​
, <section style=​"display:​ none">​…​&lt;/section>​
, <section style=​"display:​ none">​…​&lt;/section>​
, <section style=​"display:​ none">​…​&lt;/section>​
, <section style=​"display:​ none">​…​&lt;/section>​]

したがって、7つのセクションがあり、そのうちの2つは(現在)クラスを持っていwhiteます。セクションが非表示になるparent()と、コードを使用できなくなります。

var hidden = ($(this).siblings().filter(':visible').length);

表示されているクラスの数を確認するには、白いクラスを数える必要があります。しばらくして、私はこれを機能させることができました:

var hidden=0;
$(this).siblings().each(function(){
    if ($(this).hasClass('white')) {hidden++;};
});

なぜ私は各兄弟をループする必要があり、次の1つ、またはクラスを持つものを数えるために別の1行を使用できないのですか'white'

var hidden = ($(this).siblings().filter(':white').length); or
var hidden = ($(this).siblings().filter('white').length);

また

var hidden = ($(this).siblings().hasClass('white').length);

また

var hidden = ($(this).siblings().is(':white').length); or
var hidden = ($(this).siblings().is('white').length);
4

1 に答える 1

4

.filter().hasClass().is()、およびループの問題を経験するのはなぜですか? の引数を使用して兄弟をフィルタリングし、「白」のものを取得することはできませんか?.sibling()

$(this).siblings('.white').length
于 2012-07-26T15:31:45.233 に答える