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