这个问题是,点击i标签的图标时,li列表里面有两个class=“nav-menu”同时隐藏显示,这个问题很头疼。这个jquery怎么能进行遍历并能够单独隐藏显示一个指定class?
$('.postion-right i').on('click', function(){
var el = $(this);
if(el.hasClass('fa-minus-square-o')){
el.removeClass('fa-minus-square-o').addClass('fa-plus-square-o');
$(".nav-menu").each(function () {
$(this).hide("100");
})
}else{
el.removeClass('fa-plus-square-o').addClass('fa-minus-square-o');
$(".nav-menu").each(function () {
$(this).show("100");
})
}
});
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
姑且猜测你是想点击.postion-right i之后让当前.postion-right i下面的ul.nav-menu 显示隐藏。。那么你需要把
替换为
从.postion-right i找到上级的li再找到下级ul。。。。
另外从性能方面考虑,jq的选择器要遵循id>tag>name>class>attribute来使用
再另外,使用$(".nav-menu").each(fn(index))的时候一般是根据这组元素的index(标识)来处理某一项内容。。。否则$(".nav-menu").show(),这样jq就可以帮你处理全部元素了
each方法会改变this的指向,所以不能这样用.使用siblings来获取同辈元素就可以很方便的进行控制了。