我在这样生成的网页上有一个部分。
<table>
<c:forEach items="${personList}" var="person">
<tr>
<td>
</td>
<td>
<h2 style="text-align:left;">${person.reviewName}</h2>
<h2 style="text-align:right;">by ${person.name}</h2>
</td>
</tr>
<tr>
<td style="text-align:right;">
<img src="<c:url value="/resources/${person.id}.jpg" />" >
</td>
<td>
${person.review}
</td>
</tr>
<tr>
<td>
</td>
<td>
<div id="${person.id}" class="comment">comments</div>
</td>
</tr>
<tr id="ins${person.id}">
<td>
</td>
<td id="comments${person.id}" style="display:none">
<div id="ins${person.id}">
<table>
<c:forEach items="${person.comments}" var="comment">
<tr>
<td>
${comment}
</td>
</tr>
</c:forEach>
</table>
Add Comment:
<textarea id="comment${person.id}"></textarea>
<button onClick="addComment(${person.id})">add Comment</button>
</div>
</td>
</tr>
</c:forEach>
</table>
当像这样添加新评论时,我正在尝试使用 JQuery.load() 立即更新评论部分。
function addComment(id) {
$.getJSON("addComment", {id:id, comment:$("#comment" + id).val()});
$("#comments2").load("home #ins2");
}
问题是当我单击添加评论时,它只显示我之前添加的评论,这意味着评论部分总是后面的评论。如果我在添加评论后直接加载页面,它会按原样显示。另一个奇怪的事情是,当我添加评论时,会在评论的顶部插入一个空白行,当我直接加载页面时它不存在/消失。
我认为这可能是某种缓存问题,因此尝试使用将其关闭
$.ajaxSetup ({
cache: false
});
然而这并没有什么不同。
我真的在这个死胡同。这与我使用 load() 作为 forEach 标签的部分有关吗?