我正在建立一个网站,里面会有帖子和各自的评论。
我正在显示帖子的方式是我循环记录并将它们放入div中。另外,我有另一个查询来从评论表中获取数据,这只给我点击帖子的相关评论。
问题在于,当我使用foreach循环在单独的div(在同一级别的post div下面)显示注释时,所有其他帖子下都会显示注释。我尝试使用$(此enter code here
)。sibling和$(this).children()
等,但它不起作用。
在jquery中,我隐藏了document.ready上的注释div,并在点击帖子时显示。
以下是代码片段:
@foreach(var row in selectposts)
{
<div id ="posts">@row.posts</div>
@foreach(var row in selectcomments)
{
<div id ="comment">@row.comments</div>
}
}
答案 0 :(得分:0)
尝试这样的事情:
@{
var db = Database.Open("MyDatabase");
var postsQuery = "SELECT * FROM Posts";
var commentsQuery = "SELECT * FROM Comments WHERE PostId = @0";
}
@foreach(var post in db.Query(postsQuery)){
<div class="post@post.Id">@post.PostContent</div>
@foreach(var comment in db.Query(commentsQuery, post.Id)){
<div class="comment@comment.Id">@comment.CommentContent</div>
}
}
我刚刚将它直接键入SO,但它应该在某处附近。
jQuery正在您的OP中按预期工作,因为您始终使用相同的div ID。在这个例子中,每个post div都有一个唯一的Id(例如post127),因此可以通过jQuery单独引用它们。