我想通过ID选择使用Ajax动态创建的元素,代码为:

$(function(){
   $('#loadFeed').bind('click',function(){
        $.getJSON('getData.php', function(json) {
            var output="<ul id='feedsList'>";

            for(var i=json.posts.length-1;i>=json.posts.length-31;i--){
                output+="<li class='post'>";
                output+="<div class='text' id='"+json.posts[i].id+"'>"+json.posts[i].shortmsg+"</div>";
                output+="</li>";
            }
            output+="</ul>"
            $(output).appendTo('.posts');
    });
  });
});


html代码:

<div class="posts">
    <!--dynamic content here-->
</div>


我试图使用$(this).attr(“ id”)获取ID:

$(".post").on("click",".text",function(){
      var this_id =$(this).attr("id");
      alert(this_id);
});


但它说不确定。怎样才能正确获取ID?

最佳答案

$(".post")应该是$('div.post'),因为您是从具有相同类的ajax请求创建li。由于div.post在您的DOM中已经存在,因此您要向其添加列表。

那是,

$("div.post").on("click","li.post div.text",function(){
      var this_id = this.id;
      alert(this_id);
});

关于javascript - 获取动态创建的元素的ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10649313/

10-11 03:35
查看更多