1

我正在建立一个网站,其中会有帖子及其各自的评论。

我显示帖子的方式是循环浏览记录并将它们放入一个 div 中。此外,我还有另一个查询从评论表中获取数据,它只给我点击帖子的相关评论。

问题是,当我使用 foreach 循环在单独的 div 中(就在同一级别的帖子 div 下方)显示评论时,评论将显示在所有其他帖子下。我尝试使用 $(this 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>
  }
}
4

1 回答 1

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。在这个例子中,每个帖子 div 都有一个唯一的 ID(例如 post127),因此它们可以被 jQuery 单独引用。

于 2012-09-16T14:47:49.537 回答