Jquery附加语句不起作用

时间:2012-01-01 16:21:24

标签: jquery append

我有一些jQuery AJAX代码,它接受文本区域的内容并将其添加到MySQL数据库中。最后,我想将这些内容添加到div。这个div已经有了其他divs,所以我想我应该使用.append()函数添加新的div。但是,这不起作用。

.commentContainerdiv我想添加回复。 comment.php的输出是:

 <div>$comment</div>

Jquery的:

<script type='text/javascript'>
$('document').ready(function () {
       $("form").on("submit", function (e) {
         e.preventDefault();
         var $form = $(this);
         var commentbox = $(this).children('.commentBox');

         $.ajax({
             "url": $form.attr("action"),
             "data": $form.serialize(),
             "type": $form.attr("method"),
             success: function (response) {
                     commentbox.val('');
                     $(this).closest('.commentContainer').append(response);  //this line isnt working
               }
          });
     });
});
</script>

1 个答案:

答案 0 :(得分:2)

由于您已经在$(this)变量中缓存了$form选项,因此只需引用它而不是在整个地方使用$(this)

$('document').ready(function () {
    $("form").on("submit", function (e) {
        e.preventDefault();

        var $form      = $(this),
            commentbox = $form.children('.commentBox');

        $.ajax({
            url     : $form.attr("action"),
            data    : $form.serialize(),
            type    : $form.attr("method"),
            success : function (response) {
                commentbox.val('');
                $form.closest('.commentContainer').append(response);  //this line isnt working
            }
        });
    });
});

<强>更新

感谢发布您的HTML,好像.commentContainer元素是form元素的兄弟,所以您想要更改:

$form.closest('.commentContainer').append(response);

要:

$form.siblings('.commentContainer').append(response);