2010-02-17 66 views
4

我想知道是否有辦法在隔離當前點擊的元素的同時更改子元素,到目前爲止,我已經通過單擊事件處理程序進行了簡單的遍歷,如下所示:操作除當前點擊的元素之外的所有元素

$(function() { 
    $(".hd").children("ul").children().each(function(){ 
     $(this).click(function(){ 

      alert('Handler for .click() called');//Test (remove after completion) 
     }); 
    }) 
}); 

<!--HTML to manipulate> 
    <div class="hd"> 
          <h2>Important Information</h2> 
          <ul> 
           <li><a href="#">Faculty</a></li> 
           <li><a href="#">Staff</a></li> 
           <li><a href="#">Students</a></li> 
          </ul> 
         </div> 

我所擁有的是<ul>中的鏈接,我將其視爲製表符。我想要做的是在當前選擇的<li>中添加一個班級,同時從列表中的所有其他<li>中刪除班級。我想我可能會顛倒過來,也就是說,點擊處理程序應該先進行,並且遍歷應該放在裏面。我的目標如下:

回答

6
$('.hd > ul > li').click(function(){ 
    $(this).addClass('myClass').siblings().removeClass('someClass'); 
}); 

注意,在我和尼克的解決方案之間選擇的區別 - 雷只會搶直接在每個級別的孩子,而他的意志會抓住所有ul li後代。

0

像這樣:

$('div.hd ul li').click(function() { 
    $('div.hd ul li').not(this).hide(); 
    $(this).show(); 
}); 
2

試試這個:

$(function() { 
    $(".hd ul li").click(function(){ 
    $(this).addClass("current").siblings().removeClass("current"); 
    }) 
}); 
相關問題