1

我有以下代码,我需要在 jquery 中有帖子的 id!请帮助我。

foreach($posts->result() as $post){ 
    echo "<div class='post' id='$post->id' >";
       echo $post->content;
       echo "<div class='commentor' id='commentor' >";
          echo "<input type='text' class='commentor_input' />";
       echo "</div>";
    echo "</div>";
}

我尝试使用下面的代码获取帖子的代码,但没有用!

$('.commentor_input').change(function(e){
    e.stopImmediatePropagation();
    var comment = $(this).val();
    var post_id = $(this).closest("div").find(".post").attr("id");
    alert(post_id); // alerts Undefined!
});
4

3 回答 3

8

利用closest("div.post")

var post_id = $(this).closest("div.post").attr("id");

closest返回与您的选择器匹配的第一个元素,因此它div.commentor在您的情况下返回,并且在其中.find找不到任何元素.post,因此undefined.

于 2013-05-08T07:30:17.277 回答
2

只需更改.find().parent().

$('.commentor_input').change(function(e){
    e.stopImmediatePropagation();
    var comment = $(this).val();
    var post_id = $(this).closest("div").parent(".post").attr("id");
    alert(post_id); // alerts Undefined!
});

演示

于 2013-05-08T07:31:27.037 回答
0

尝试:

$('.commentor_input').change(function(e){
    e.stopImmediatePropagation();
    var comment = $(this).val();
    var post_id = $(this).parents("div.post").attr("id");
    alert(post_id); // alerts Undefined!
});

文档jquery.parents

于 2013-05-08T07:40:38.643 回答