我想将hidden
类添加到所有li
中,而不要添加到单击的li
中。我该如何使用jQuery?
<ul class="render-menu">
<li class="font-size">list 1</li>
<li class="font-size">list 2</li>
<li class="font-size">list 3</li>
<li class="font-size">list 4</li>
</ul>
jQuery(".render_menu li").on('click', function() {
alert();
jQuery(".render_menu").not($(this)).parent().addClass('hidden');
});
答案 0 :(得分:6)
首先请注意,HTML中的class
是render-menu
,而JS使用的是render_menu
。您需要使它们保持一致。
关于该问题,您正在将该类添加到parent()
的{{1}}中,即li
,因此 all 子元素都受到该类的影响。要解决此问题,请在调用ul
之前使用siblings()
获取所需的所有li
元素。试试这个:
addClass()
$(".render-menu li").on('click', function() {
$(this).siblings().addClass('hidden');
});
.hidden { display: none; }
答案 1 :(得分:0)
将您的JS代码更改为以下
jQuery(".render_menu li").on('click', function () {
alert();
jQuery(".render_menu li").not($(this)).addClass('hidden');
});
您正在比较ul
而不是li
来添加课程
答案 2 :(得分:0)
您可以尝试以下
MASS
$('.render-menu li').on('click',function(){
$('.render-menu li').removeClass('hidden').not(this).addClass('hidden');
});
.hidden{
color:lightgray;
}