我正在尝试在用户点击“打开评论”后使ajax评论功能正常工作。
目前我从我的php脚本中获取数据,并且ajax调用的状态为“200 OK”,因此它可以定义,但是我无法获得已被点击的当前评论的正确值为了将其发布到php脚本。
我要问的是如何获取".posted_comment_id"
类的值,然后如何加载返回".commentView"
类的数据?
的jQuery / AJAX:
$(".closedComment").click(function(){
var $this = $(this);
$this.hide().siblings('.openComment').show();
$this.siblings().next(".commentBox").slideToggle();
$.ajax({
type: "POST",
url: "http://example.dev/comments/get_timeline_comments",
data: {post_id: $this.siblings().next(".commentBox").find(".posted_comment_id").val()},
dataType: "text",
cache:false,
success:
function(data){
$this.closest(".commentView").load(data);
}
});
return false;
});
HTML:
<div class="interactContainer">
<div class="closedComment" style="display: none;">
<a href="#" class="floatLeft rightMrgn">open comments</a>
</div>
<div class="openComment" style="display: block;">
<a href="#" class="floatLeft rightMrgn">close comments</a>
</div>
<div class="commentBox floatLeft" style="display: block;">
<form action="http://example.com/comments/post_comment" method="post" accept-charset="utf-8">
<textarea name="comment" class="inputField"></textarea>
<input type="hidden" name="post" value="13">
<input type="hidden" name="from" value="5">
<input type="hidden" name="to" value="3">
<input type="submit" name="submit" class="submitButton">
</form>
<div class="commentView"></div>
<div class="posted_comment_id" style="display:none;">13</div>
</div>
</div>
答案 0 :(得分:1)
将.val
替换为.html
或.text
。这将返回元素的innerHTML
。
data: {
post_id: $this.siblings().next(".commentBox").find(".posted_comment_id").text()
}
您可能需要将字符串转换为整数才能使其正常工作。
如果查询选择器失败,则此选择器可能会执行该作业:
$this.parent().find(".posted_comment_id")
要在网页上添加返回的数据,请使用success
处理程序。这是一个如何完成的例子:
success: function(json) {
// Parse your data here. I don't know what you get back, I assume JSON
var data = JSON.parse(json),
content = data.whatever_you_want_to_print;
// Assuming your selector works, you put in in the element using .html
$this.closest(".commentView").html(content);
}
});
答案 1 :(得分:0)
你可能想做类似的事情:
$(this).parents('.interactContainer').find(".posted_comment_id").text()