jQuery li点击了id和value

时间:2010-08-10 04:35:02

标签: javascript jquery html

<ul id='myid' >  
<li>Microsoft Office</li>  
<li>Microsoft windows XP</li>   
<li>Microsoft windows Vista</li>  
<li>Microsoft windows 7</li>  
<li>Microsoft windows server 2003</li>    
</ul>

<input type='button' id='mybutton' value='submit' disabled >  

jquery

$("#myid").click(function(){  

   $("#mybutton").attr("disabled", false);  

});  

单击LI中的其中一个项目后,将启用提交按钮。到现在一切都很好。但我不知道如何获取点击一个LI的值(假设在点击提交按钮后给出li项的值)

感谢
戴夫

3 个答案:

答案 0 :(得分:3)

以下是.delegate()

的解决方案
$("#myid").delegate('li','click', function(){  
   alert( $(this).text() ); 
   $("#mybutton").attr("disabled", false);  
})​;

如果您要添加大量要附加处理程序的元素,这有时是更好的选择。相反,你只有一个处理程序坐在一个级别,听取内部孩子触发的事件。

答案 1 :(得分:2)

$("#myid li").click(function(){  
   var text= $(this).text(); // will get the actual text of li use .html() if you want tags in there.
   alert(text)
   $("#mybutton").attr("disabled", false);  

});

答案 2 :(得分:1)

LI没有值属性。

您可以在LI中添加隐藏元素来存储值。你还需要点击LI,而不是UL。

<li>Microsft Office<input type="hidden" value="1" name="msoffice" /></li>

和JS:

$("#myid li").click(function(){
    $("#mybutton").attr("disabled", false);
    var value = $(this).find('input').val();
    alert(value); // 1
});

如果你把INPUT [type = radio]放在LI里面并为文本添加LABEL会更好,所以即使没有javascript也可以使用。