点击li id

时间:2012-11-29 10:20:39

标签: javascript jquery html nested-sortable

我有以下列表:

<ol class="sortable ui-sortable">
    <li id="list_1608"><div>One</div></li>
    <li id="list_1609"><div>Two</div></li>
    <li id="list_1610"><div>Three</div></li>
</ol>

我希望获得点击的id li。我尝试了以下代码,但没有得到警报。

$("li").click(function() {
    var myid = $(this).attr("id");
    alert(myid);
});

我将它与nestedSortable jQuery插件结合使用。

我哪里错了?

确定更多信息,在加载dom后添加列表项。

如果项目加载开始,它确实有效,请道歉。

5 个答案:

答案 0 :(得分:11)

您的代码正在运行here,您可能需要将其放入document.ready()或需要add jQuery files。使用this.id代替$(this).attr("id")是更好的选择,因为它是javascript并为您带来性能优势。

$(document).ready(function(){

     $("li").click(function() {
        //var myid = $(this).attr("id");
        alert(this.id);
     });

})

答案 1 :(得分:0)

您可以通过以下方式获取ID:

this.id

答案 2 :(得分:0)

这可能会有所帮助。

$('ol').click(function(event){
if(event.target.tagName == 'li'){alert(this.id);}
if($(event.target).parent('li').length > 0){$(this).parent().attr('id');}
});

答案 3 :(得分:0)

检查您是否先在head标记

中正确加载了jquery库
<script language="javascript" type="text/javascript" src="jquery-1.8.2.js"></script>
<script language="javascript" type="text/javascript">
$(function(){
     $("li").click(function() {
        var myid = $(this).attr("id");
        alert(myid);
     });
});
</script>

答案 4 :(得分:0)

仅供将来参考。虽然上面的答案对于静态数据是正确的,但我忘了提到元素是在DOM加载后添加的。解决方案实际上是..

$("li").live("click", function({
    alert(this.id);
 });