为什么我不能在jQuery中选择一个孩子的孩子?我想使用.children()
方法和>
选择器向课程的孩子添加课程。请参见下面的代码:选择一个孩子的子女
$(function(){
// main expansion element
$(".expander").click(function() {
var subShown = $(this).children("ul > li").hasClass("show");
if (!subShown) {
$(this).children(".indented").slideDown('100').addClass("show");
$(this).children(".caret").addClass("reversedCaret");
} else {
$(this).children(".indented").slideUp('100').removeClass("show");
$(this).children(".caret").removeClass("reversedCaret");
}
});
});
HTML:
<div class="expander">
<span class="caret downCaret right visibleCaret">+</span>
<ul>
<li class="category">Item 1<a href="http://www.google.com"></a></li>
<li class="indented"><a href="http://www.google.com">Item 2</a></li>
<li class="indented"><a href="http://www.google.com">Item 3</a></li>
</ul>
</div>
当我点击expander
它不会将该类添加到我的li
元素。为什么?
的'li'是在膨胀,这就是'儿童不直接孩子() '回报。你需要使用'find()'而不是'children()'。 'children()'和find('> *')基本相同' – Taplar
我试过'.find()'但我无法正常工作。会在'.children()'之前还是之后? – kawnah
看看斯科特的解决方案。你根本不用 - 要 - 完全使用孩子()。 – Taplar