jQuery没有将divs过滤为第n个孩子?

问题描述:

<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"><script> 

<script> 
$(document).ready(function() 
{ 
    $('.sss').filter(':nth-child(n+2)').hide(); 
    $('.sss').on('mouseenter', '.question', function() 
    { 
     $(this).next().slideDown(200).siblings('.answer').slideUp(200); 
    }); 
}); 
</script> 
</head> 
<div class="sss"> 
    <div class="question">Question</div> 
    <div class="answer">Answer</div> 

    <div class="question">Question</div> 
    <div class="answer">Answer</div> 

    <div class="question">Question</div> 
    <div class="answer">Answer</div> 

    <div class="question">Question</div> 
    <div class="answer">Answer</div> 
</div> 

部门没有亲子关系或我在这里做错了吗?jQuery没有将divs过滤为第n个孩子?

试试这个:

$('.sss').children().filter(':nth-child(n+2)').hide(); 

如果你需要的所有question DIV然后尝试:

$('.sss').children(':nth-child(2n)').hide(); 

OR

$('.sss .question').hide(); 

并为所有answer

$('.sss').children(':nth-child(2n+1)').hide(); 

OR

$('.sss .answer').hide(); 
+0

()解决了这个问题。为什么jQuery不考虑像childs而不是div的标签?我看到一个使用ul和li标签制作的示例,它不需要使用children()。 – Aristona

这里是不使用过滤器的替代:用孩子

$('.sss').children(':nth-child(n+2)').hide();