1

私は投稿とそれぞれのコメントがあるウェブサイトを構築しています。

投稿を表示する方法は、レコードをループしてdivに入れることです。さらに、コメントテーブルからデータをフェッチする別のクエリがあり、クリックされた投稿に関連するコメントのみが表示されます。

問題は、foreachループを使用して別のdiv(同じレベルのposts 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 に直接入力したところですが、近くにあるはずです。

全体で同じdiv IDを使用しているため、jQueryはOPで期待どおりに機能しています。この例では、各投稿 div に一意の ID (post127 など) が割り当てられるため、jQuery で個別に参照できます。

于 2012-09-16T14:47:49.537 に答える