我有以下html: -
<ul class="nav-list">
<li><a style="cursor:pointer;"><span class="hello"> ></span>OVERVIEW</a>
<ul here>
<li id="Overview"><a href="/en/overview">OVERVIEW</a>
</ul>
</li>
</ul>
我希望,当点击span class hello时,这里的ul将添加一个类,我尝试了以下内容: -
<script>
$(function(){
$('.hello').click(function(){
$(this).siblings().find('ul').addClass('hello');
})
})
</script>
在这种情况下,我如何处理下属,父母和子女并找到('ul')?
答案 0 :(得分:3)
<script>
$(function(){
$('.hello').click(function(){
$(this).closest("li").find('ul').addClass('hello');
})
})
</script>
答案 1 :(得分:1)
ul
是父li
元素的下一个兄弟
$(function(){
$('.hello').click(function(){
$(this).parent().next().addClass('hello');
})
})
演示:Fiddle
答案 2 :(得分:1)
<script>
$(function(){
$('.hello').click(function(){
$(this).parent().siblings().find('ul').addClass('hello');
})
})
</script>
跨度没有任何兄弟ul,其父级有
答案 3 :(得分:1)
您可以通过两种方式实现:
$('.hello').click(function(){
$(this).closest('li').find('ul').addClass('hello');
})
$('.hello').click(function(){
$(this).parent().siblings('ul').addClass('hello');
})
答案 4 :(得分:0)
$('.hello').click(function(){
$(this).closest("li").find('ul').addClass('hello');
})
答案 5 :(得分:0)
答案 6 :(得分:0)
在点击监听器中可以有一个简单的方法:
$(this).closest("li").find("ul").addClass("hello");
如果最近你有li容器,那么你可以在容器中找到正确的sibiling ul。
我使用此解决方案而不是.parent(),因为它不依赖于DOM中元素的位置,并且如果您因任何原因将span或anchor包装在另一个标记中,它仍然有效。