2012-11-11 35 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); 

});