Javascript jQuery隐藏没有类的所有元素
我有一个简单的jQuery,它可以在单击后将类“active”切换为li:Javascript jQuery隐藏没有类的所有元素,javascript,jquery,css,if-statement,Javascript,Jquery,Css,If Statement,我有一个简单的jQuery,它可以在单击后将类“active”切换为li: $('li').click(function() { $(this).toggleClass('active'); }); 然后我想做的是隐藏列表中的所有其他li(显示:无),然后当您再次单击活动li时,它将删除活动类,但将所有其他li设置为再次可见。这就是我正在努力实现的目标 我尝试在click函数中使用if语句来检查“active”类是否存在,是否将所有li设置为hidden,如果没有,则将css设置为再次
$('li').click(function() {
$(this).toggleClass('active');
});
然后我想做的是隐藏列表中的所有其他li(显示:无),然后当您再次单击活动li时,它将删除活动类,但将所有其他li设置为再次可见。这就是我正在努力实现的目标
我尝试在click函数中使用if语句来检查“active”类是否存在,是否将所有li设置为hidden,如果没有,则将css设置为再次显示它们,但这不起作用
编辑:
tilz0R的答案几乎就是我想要的,我只是稍微修改了一下以满足我的需要
$('li').click(function() {
$(this).toggleClass('active').siblings().toggleClass('hidden');
});
隐藏类只有display:none,因此除了单击的li之外,所有其他li都被隐藏,然后在第二次单击活动li时再次显示所有li。您必须找到当前
li
元素的同级
$('li').click(function() {
$(this).toggleClass('active').siblings().hide();
});
当您单击任何
标记时,所有
标记都将隐藏,但所选的
标记除外。然后再次单击,所有
标记将显示并删除活动类
HTML:
<ul>
<li>first</li>
<li>second</li>
<li>third</li>
<li>forth</li>
</ul>
只需使用
addClass
,removeClass
和show()
/hide()
$('li')。单击(函数(){
if($(this).hasClass('active')){
$('li').show();
$(this.removeClass('active');
}否则{
$('li').hide();
$(this.addClass('active').show();
}
});代码>
li{
光标:指针;
}
.主动{
颜色:绿色;
}
项目1
项目2
项目3
项目4
我们可以举一些最简单的例子吗?这几乎是可行的,但是第二次单击后,其他li就不再显示了。我想知道你的结果应该是什么,但是也许。toggle()
而不是。hide()
可以完成这项工作@爱德华1442
jQuery('ul li').click(function() {
if(jQuery(this).hasClass('active')) {
jQuery(this).removeClass('active');
jQuery('ul li:not(".active")').show();
} else {
jQuery('ul li').removeClass('active');
jQuery(this).addClass('active');
jQuery('ul li:not(".active")').hide();
}
});