jquery如果hasclass不起作用

时间:2018-04-19 04:13:51

标签: jquery css

如果父li有活动类,我想显示嵌套ul。通过jquery动态应用了li的活动类。这是我的侧导航

$('.sidebar-collapse ul li').each(function(){
    if(window.location.href.indexOf($(this).find('a:first').attr('href'))>-1){
            $(this).addClass('active-menu');
            $(this).parents('li').addClass("active-menu").siblings().removeClass('active-menu'); 
        }
    });

如果点击了这个li,我已经为每个li设置了活动课程。

if($(".sidebar-collapse ul li").hasClass('active-menu')){
    $(this).find('.nav-second-level').css('display','block');
 }  

现在我想显示任何li的嵌套ul,如果它有嵌套的ul。所以我应用了hasClass。它适用于警报,但是将css添加到嵌套的ul不起作用。我测试使用chld,next,最近,但不起作用。有什么想法吗?

Amazon.Lambda.Tools

2 个答案:

答案 0 :(得分:2)

你做错了选择。 只需使用

if($(".sidebar-collapse ul li").hasClass('active-menu')){
$('.nav-second-level:first').css('display','block');}

这意味着,如果'li'具有活动类,则下一个带有'nav-second-level'类的'ul'将获得应用于它的css。

答案 1 :(得分:2)

您必须使用docker-compose.yaml,因为您在没有上下文的情况下使用.each(),每个都会通过所有元素进行操作,并为每个元素提供上下文。

查看以下代码段。

this
$(".sidebar-collapse ul li").each(function() {
  if ($(this).hasClass('active-menu')) {
    $(this).parent(".nav-second-level").show();
  }
})