2012-11-11 38 views
0

我已經在未來的HTML代碼,我會得到從HTML列表蒙山jQuery的id屬性(ID =「Seconde系列」)。得到的元素列表ID與jQuery

 <div id="navigation"> 
<ul class=" sf-menu sf-vertical " > 
      <li > 

       <a href="#">Pollo</a> 
       <ul> 
        <li> 
         <a href="#">Prime lavorazioni</a> 

        </li> 
        <li id = "seconde"> 
         <a href="#">Seconde lavorazioni</a> 

        </li> 
        <li> 
         <a href="#">Terze lavorazioni</a> 

        </li> 

       </ul> 
      </li> 



     </ul> 
     </div> 

氏是我的.js:

$("ul.sf-menu li ").click(function(){ 

      var oID = $(this).attr("id"); 
      alert(oID); 
     }); 

,但不起作用。任何想法?感謝

+0

究竟什麼是行不通的?你有兩個警報消息confised? –

+0

裏面的警報不顯示與李的消息ID – berti

回答

0

問題是,你的列表是嵌套的。你有ul.sf菜單的DOM樹> li> ul>李

所以,當你點擊一個列表項,回調實際上觸發兩次,因爲兩個列表項已被點擊。

你可能會考慮改變你的代碼這一點,所以只列出的項目相匹配是一個UL的孩子:

$("ul.sf-menu ul > li ").click(function(){ 

     var oID = $(this).attr("id"); 
     alert(oID); 
}); 

或者,你可能會從李項刪除ID,並添加他們,而到鏈接本身。

+0

thx完美的作品 – berti

0

你應該事件處理程序只能安裝到內裏的標籤(並確保OID變量定義,因爲一些鋰標籤沒有「身份證」屬性):

$("ul.sf-menu ul li ").click(function() 
{ 
    var oID = $(this).attr("id"); 
    if (oID) 
    alert(oID); 
}); 
0
$("ul.sf-menu ul li ").click(function(){ 
    var oID = $(this).attr("id"); 

    if(typeof oID != 'undefined'){ 
     alert(oID); 
    } 
});​ 

找到目標(DOM樹)李,我只是確認未定義太

http://jsfiddle.net/sameerast/8YwVj/

0

當你點擊一個列表項,回調實際上觸發兩次,因爲兩個列表項已點擊。您僅在第二個LI Items中給出了ID。請每一個LI元素的ID和嘗試下面的代碼。

你有ul.sf菜單> li> ul>裏的DOM樹。

可以使用

$( 「ul.sf菜單ul>利」)。點擊(函數(){

var oID = $(this).attr("id"); 
    alert(oID); 

});