切换不适用于子类(.open
),它适用于主标记(li
)。
$('.open').click(function() {
$(this).next('ul').toggle();
});
我遗失了什么?
答案 0 :(得分:1)
<强> Updated fiddle 强>
jQuery方法 next()
立即得到兄弟姐妹。
问题:您.open
元素没有ul
兄弟。
建议的解决方案:转到父li
,然后使用.next()
兄弟的ul
,如:
$(this).parent().next('ul').toggle();
//Or
$(this).parents('li').next('ul').toggle();
希望这有帮助。
$('.open').click(function() {
$(this).parent().next('ul').toggle();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li> 11111111 <i class="open">open</i></li>
<ul>
<li> 1.1 </li>
<li> 1.2 </li>
</ul>
<li> 22222222222 <i class="open">open</i></li>
<ul>
<li> 2.1 </li>
<li> 2.2 </li>
</ul>
</ul>
答案 1 :(得分:0)
使用.closest()
获取neareast最近元素li .next()
以获取dom中的select immediate ul元素
$('.open').click(function() {
$(this).closest('li').next('ul').toggle();
});
答案 2 :(得分:0)
获取li
的父.open
元素,然后获取该partent项的下一个li
元素。
$('.open').click(function() {
$(this).parent('li').next('ul').toggle();
});
答案 3 :(得分:0)
当你将$(this).next('ul').toggle();
的目标放在.open对象所在的<li>
内的下一个ul时,但那里没有<ul>
。
为此,您应该使用目标父<li>
,然后定位其后的<ul>
。
代码应该是这样的:
$('.open').click(function() {
$(this).parent().next('ul').toggle();
});