0

我有以下列表:

<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 后添加的。

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

4

5 回答 5

11

您的代码在这里工作,您可能需要将其放入document.ready()或需要添加 jQuery 文件。在这里使用this.id代替$(this).attr("id")是更好的选择,因为它是 javascript 并且可以为您带来性能优势。

$(document).ready(function(){

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

})
于 2012-11-29T10:22:57.813 回答
0

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

this.id
于 2012-11-29T10:22:39.253 回答
0

这可能会有所帮助。

$('ol').click(function(event){
if(event.target.tagName == 'li'){alert(this.id);}
if($(event.target).parent('li').length > 0){$(this).parent().attr('id');}
});
于 2012-11-29T10:25:35.593 回答
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>
于 2012-11-29T10:29:17.980 回答
0

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

$("li").live("click", function({
    alert(this.id);
 });
于 2012-12-01T03:48:00.060 回答