[英]Remove and Add class from <div> and <li> in jquery
<ul class="current">
<li>
<a href="#nogo"><b>Products</b>
<div class="select_sub show">
<ul class="sub">
<li class="sub_show"><a href="#nogo">Add product</a></li>
</ul>
</div>
</a>
</li>
</ul>
<ul class="select">
<li>
<a href="#nogo"><b>Item</b>
<div class="select_sub">
<ul class="sub">
<li><a href="#nogo">Add Item</a></li>
</ul>
</div>
</a>
</li>
</ul>
1.单击项目链接后,我想在当前ul当前类别中添加类别并删除其他形式的此代码
$("ul").click(function(e){
e.preventDefault();
$(this).addClass("current").siblings().removeClass("current").addClass("select");
});
我对第二点有疑问
我的意思是说(如果我单击项目链接)
<ul class="select">
<li>
<a href="#nogo"><b>Products</b>
<div class="select_sub">
<ul class="sub">
<li><a href="#nogo">Add product</a></li>
</ul>
</div>
</a>
</li>
</ul>
<ul class="current">
<li>
<a href="#nogo"><b>Item</b>
<div class="select_sub show">
<ul class="sub">
<li class="sub_show"><a href="#nogo">Add Item</a></li>
</ul>
</div>
</a>
</li>
</ul>
提前致谢
如果我正确理解了您的问题,那么下面应该可以解决问题。
$("ul").click(function(e){
e.preventDefault();
var $this = $(this);
var $siblings = $(this).siblings();
$this.addClass("current"); //probably need to add .removeClass('select')
$this.find('.select_sub').addClass('show');
$siblings.removeClass("current").addClass('select');
$siblings.find('.select_sub').removeClass('show');
});
应该这样做:
$("ul").click(function(e){
e.preventDefault();
$(".current").addClass("select"); //Add the default "select" class to any "current"
$(".current").removeClass("current"); //Remove "current" from any "current"
$(this).removeClass("select"); //Remove "select" from the clicked UL
$(this).addClass("current"); //Add "current" to the clicked UL
});
如果需要,您可以将它们称为2行,但是我认为这更容易理解。
应该像添加一样简单:
$('.current .select_sub').addClass('show');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.