php jQuery函数只允许我编辑第一个值

sauutmhj  于 2022-10-30  发布在  PHP
关注(0)|答案(1)|浏览(180)

我用laravel做了一个博客部分,博客包含评论和回复,评论工作很好。但当我想回复它只是让我回复最新的评论,我想我在我的jquery函数中犯了一个错误。
这是评论和回复的形式:

  1. @foreach ($comments as $i)
  2. <li>
  3. <div class="avatar"><img src="/assets/media/avatars/blank.png" alt="" /></div>
  4. <div class="comment-content">
  5. <div class="arrow-comment"></div>
  6. <div class="comment-by">{{ $i->name }}
  7. <span class="date">{{ date('F j, Y', strtotime($i->created_at)) }}</span>
  8. @if (Auth::user())
  9. <a href="#" data-id="{{ $i->id }}" id="replay"
  10. class="reply"><i class="fa fa-reply"></i> Répondre</a>
  11. @endif
  12. </div>
  13. <p>{{ $i->comment }}</p>
  14. </div>
  15. <ul>
  16. @foreach ($replay as $o)
  17. @if ($o->cmnt_id == $i->id)
  18. <li>
  19. <div class="avatar"><img src="/assets/media/avatars/admin.png"
  20. alt="" /></div>
  21. <div class="comment-content">
  22. <div class="arrow-comment"></div>
  23. <div class="comment-by">Admin
  24. <span
  25. class="date">{{ date('F j, Y', strtotime($o->created_at)) }}</span>
  26. </div>
  27. <p>{{ $o->comments }}</p>
  28. </div>
  29. </li>
  30. @endif
  31. @endforeach
  32. </ul>
  33. </li>
  34. @endforeach
  35. </ul>
  36. </section>

这是我jquery代码:

  1. @push('script')
  2. <script>
  3. $("#replay").on('click', function(e) {
  4. e.preventDefault();
  5. var cmnt_id = $(this).attr("data-id");
  6. var blog_id = $('#blog_id').val();
  7. $('#add-comment').html(`
  8. <form class="add-comment" action="/reply" method="POST">
  9. @csrf
  10. <input type="hidden" name="cmnt_id" value="` + cmnt_id + `">
  11. <input type="hidden" name="blog_id" value="` + blog_id + `">
  12. <fieldset>
  13. <div class="row">
  14. <div class="col-md-12">
  15. <textarea cols="30" placeholder="Commentaire..." rows="2" name="comment" required></textarea>
  16. </div>
  17. </div>
  18. </fieldset>
  19. <div class="utf-centered-button">
  20. <button type="submit" class="button">Submit Comment</button>
  21. </div>
  22. <div class="clearfix"></div>
  23. </form>
  24. `);
  25. });
  26. </script>

@端推
我做错了什么?
谢谢你

vs91vp4v

vs91vp4v1#

你好吗?
问题在于,您为每个链接设置了相同的id属性,当您这样做时,在click事件中,jQuery将获得DOM中具有该id的第一个元素。如果您将选择器用作类,jQuery将获得实际单击的元素。
请尝试在单击功能中切换选择器,以执行以下操作:

  1. $(".replay").on('click', function(e) {

相关问题