我在一个项目的注释部分列出了用户上传的每张图片。 jQuery用于切换视图评论按钮并显示与该图片相关的评论。 Ajax请求从数据库中获取数据。
现在的问题是,只有第一张图片似乎显示了评论,而其余的则没有。
var array1, array2, iden, value, repeat;
function fetching(iden) {
value = iden.data("id");
$.ajax({
url: "{% url 'fetchertwo' %}",
type: "GET",
data: {
'search': value
},
dataType: 'json',
success: function(data) {
array1 = data.content;
array2 = data.author;
$.each(array1, function(i, item) {
iden.find($(".paratwo")[i]).html( array2[i]+'\n')
console.log(array1[i], array2[i]);
});
}
});
}
$('.headingone').click(function(event) {
event.preventDefault();
iden = $(event.target).next()
$(this).next().toggle("slide");
fetching(iden)
});
$('.formtwo').on("submit", function(event) {
event.preventDefault();
console.log(iden)
var formData = $(this).serialize();
$.post("/usercreation/picomment/" + value, formData,
function(response) {
fetching(iden)
});
this.reset();
});
<a style="text-decoration:blink;" href="" class="headingone" data-id={{item.pk}} >View Comments</a>
<div class="menu" data-id={{item.pk}} style="display:none">
{% for i in item.piccomments.all %}
<p class="paratwo" style="margin:0px;"></p>
{% endfor %}
<form class="formtwo" method="post" action="">
{% csrf_token %}
<div class="form-group">
<div class="row">
<div class="col-6">
<input data-id={{item.pk}} autocomplete="off" type="text" name="commentadd" class="form-control commentadd" placeholder="Add Comment">
</div>
<div>
<input class="btn btn-outline-dark" type="submit" name="submit" value="Submit">
</div>
</div>
</div>
</form>
</div>
答案 0 :(得分:1)
使用insertBefore
插入项目,然后.html()
覆盖先前的内容。
为您的评论添加div:
<div id="comments">
{% for i in item.piccomments.all %}
<p class="paratwo" style="margin:0px;"></p>
{% endfor %}
</div>
success: function(data) {
array1 = data.content;
array2 = data.author;
const comments = [];
$.each(array1, function(i, item) {
comments.push('<p class="paratwo">' + array1[i] + '<br> by:' + array2[i] + '</p>');
});
$('#comments').html(comments.join(''));
}