2

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を正しく取得できますか?ありがとう!

4

2 に答える 2

2

$(".post")同じクラスの ajax リクエストから$('div.post')作成しているためです。liDOM に存在するようdiv.postに、リストを追加しています。

あれは、

$("div.post").on("click","li.post div.text",function(){
      var this_id = this.id;
      alert(this_id);
});
于 2012-05-18T08:43:57.553 に答える
2

数字は有効な ID ではありません。ID は文字で始める必要があります。

次のようなものを使用する必要があります。

output+="<div class='text' id='post_"+json.posts[i].id+"'>"+json.posts[i].shortmsg+"</div>";

有効な id の構造は次のとおりです: HTML の id 属性の有効な値は何ですか?

于 2012-05-18T08:51:33.993 に答える