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 个部分,其中两个(当前)有 class white。隐藏该parent()部分后,我将无法再使用代码:

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

要查看有多少可见,我需要计算白色的类。过了很长一段时间,我能够让它工作:

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

为什么我必须遍历每个兄弟姐妹并且不能使用以下之一或另一行来计算具有 class 的那些'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 回答