2017-07-19 87 views
0
$(document).ready(function() { 
    $('.slash-menu nav').click(function(){ 
     $('.slash-menu nav').addClass('active'); 
    }); 

});addclass未成功实施

Jquery的执行完这条→

<nav class="slash-menu"></nav> 

应该成为这一→

<nav class="slash-menu active"></nav> 

但这没有发生。

Source of my Learning.

+0

最简单的办法就是走在浏览器控制台,然后输入'$(选择).length'如果它是零,你的选择器是错误的。例如'$('。slash-menu nav').length'vs'$('。slash-menu')length' –

回答

1
  1. 选择是错误的。 .slash-menu nav表示具有类slash-menu的元素查找子导航。基于HTML标记应与类slash-menu
  2. 使用这种上下文元素导航

$(document).ready(function() { 
 
    $('nav.slash-menu').click(function() { 
 
    $(this).toggleClass('active'); 
 
    }); 
 
});
.active { 
 
    color: red 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav class="slash-menu">red</nav> 
 
<nav >not red</nav>

调试选择
+0

[Link](https://www.screencast.com/t/JyVX4ftYF)我按照你的建议做了,但窗台不工作。 ] – somethingnow

+0

@AdiYogi展示演示而不是图片 – guradio

+0

是的,当然先生。 – somethingnow

2

那是因为你的选择是寻找内部.slash-menu一个<nav>元素 - 目标是这样的:

$('nav.slash-menu').click(function() 
{ 
    $(this).addClass('active') 
}) 
+0

[Link](https://www.screencast.com/t/JyVX4ftYF)正如你所建议的那样,但是它并不工作。 ] – somethingnow

+0

@AdiYogi - 有趣的是,它应该工作。在'$('nav.slash-menu')'上使用.length来查看它是否返回大于0 – ThisGuyHasTwoThumbs