2

我如何引用$('nav>.smart-nav>li')具有$(本)在if语句中,而不是$(“.导航秒”)?

这是密码-

if($('nav>.smart-nav>li').is('.active')){$('.nav-second').addClass('in');}
<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><导航><ul class=“nav-smart-nav”><li>仪表板</a></li><li class=“active”><a data-toggle=“collapse”aria-expanded=“false”class=“colladed”>管理员门户</span></a><ul id=“”class=“nav-nav-second collapse”aria-expanded=“false”><li>仪表板</a></li><li><a href=“activity.html”>客户报告</a></li></ul></li><li><a data-toggle=“collapse”aria-expanded=“false”class=“colladed”>支持</span></a><ul id=“”class=“nav-nav-second collapse”aria-expanded=“false”><li>日志</a></li></ul></li></ul></nav>

6
  • 2
    显示HTML结构,如何.nav-秒与有关导航>.smart-nav>li?
    – 萨特帕
    评论 2017年6月9日11:32
  • 的可能副本“这个”是什么意思? 评论 2017年6月9日11:35
  • $(本)指的是上下文,你在这里指的是哪个上下文? 评论 2017年6月9日11:36
  • $('nav>.smart-nav>li').is('.active')返回布尔值。
    – 拉西兹
    评论 2017年6月9日11:38
  • 是的,我知道,我想谈谈$('nav>.smart-nav>li') 评论 2017年6月9日11:38

4个答案4

重置为默认值
2

如下所示:-

$('.smart-nav>li.active').children('ul.nav-second').addClass('in');

示例:-

$('.smart-nav>li.active').children('ul.nav-second').addClass('in');
<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><导航><ul class=“nav-smart-nav”><li>仪表板</a></li><li class=“active”><a data-toggle=“collapse”aria-expanded=“false”class=“colladed”>管理员门户</span></a><ul id=“”class=“nav-nav-second collapse”aria-expanded=“false”><li><a href=“administrator portal.html”>仪表板</a></li><li><a href=“activity.html”>客户报告</a></li></ul></li><li><a data-toggle=“collapse”aria-expanded=“false”class=“colladed”>支持</span></a><ul id=“”class=“nav-nav-second collapse”aria-expanded=“false”><li>日志</a></li></ul></li></ul></nav>

4
  • @Satpal根据OP当前显示的html更改 评论 2017年6月9日11:43
  • 1
    这是添加类的最佳方法,但不确定是否还有其他代码要进入如果(这就是我在回答中留下它的原因)。无论如何加一个:)
    – 皮特
    评论 2017年6月9日11:52
  • 谢谢,它现在工作了,我现在有两个选择。我之前把另一个答案标记为正确。我只是对这一个竖起大拇指! 评论 2017年6月9日11:56
  • 1
    @LXhelili将此标记为答案-如果您不需要如果做其他事情
    – 皮特
    评论 2017年6月9日11:58
2

$('nav>.smart-nav>li').is('.active')正在检查类是否处于活动状态的li,相反,如果您希望使用活动类的li,我会这样做:

var li=$('nav>.smart-nav>li.active');//获得主动李if(li.length){//检查是否有li.find('.nav-second').addClass('in');//在这里,li-var的行为与您的this类似,因为它是具有活动类的}
0
1

我相信你不能。$(this)仅在元素和回调事件中可用

1

你不需要if()如果你正在寻找一个活跃的后代<li>…只需组合选择器:

$('nav>.smart-nav>li.active.nav-second').addClass('in');
0

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.