$(this).siblings()
返回:
[<section style class="white">…</section>
, <section style class="white">…</section>
, <section style="display: none">…</section>
, <section style="display: none">…</section>
, <section style="display: none">…</section>
, <section style="display: none">…</section>
, <section style="display: none">…</section>]
所以有7个部分,其中两个(当然)有类white
。隐藏parent()
部分后,我将无法再使用该代码:
var hidden = ($(this).siblings().filter(':visible').length);
要查看有多少可见,我需要计算白色的类。很长一段时间后,我能够让它发挥作用:
var hidden=0;
$(this).siblings().each(function(){
if ($(this).hasClass('white')) {hidden++;};
});
为什么我必须循环遍历每个兄弟,不能使用以下一个或另一行来计算类'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);
答案 0 :(得分:4)
为什么要经历.filter()
,.hasClass()
,.is()
和循环问题? Can't you use .sibling()
's argument to filter the siblings instead并获得“白色”的那些?
$(this).siblings('.white').length