我想通过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/