从jquery </li> </div>中的<div>和<li>中删除并添加类

时间:2012-04-23 19:47:22

标签: 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");

});

我有第二点的问题

  1. 当我点击项目链接时,我想添加类 select_sub show 哪个div有类select_sub
  2. 我的意思是说(如果我点击项目链接)

    <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>
    

    提前致谢

3 个答案:

答案 0 :(得分:0)

如果我正确地理解了你的问题,那么下面应该可以解决问题。

$("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');


});

答案 1 :(得分:-1)

这应该这样做:

$("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 :(得分:-1)

应该像添加:

一样简单
$('.current .select_sub').addClass('show');