Выбор КОНКРЕТНОГО следующего сиблинга родительского сиблинга

#jquery #html #css #twitter-bootstrap

#jquery #HTML #css #twitter-bootstrap

Вопрос:

Я новичок в программировании и создании однопользовательского приложения для блогов. Сообщение в блоге может содержать комментарии. То, что я пытаюсь сделать, это показывать комментарии только после нажатия на «комментарий» каждого сообщения. Я могу сделать это здесь.

 $(".comment-area-toggle").click(function(){
$(this).next('.comment-area').slideToggle();

     <li style="margin: none !important;"> Likes: {{ entry.likes }} 
        <a href='/likes/{{entry.id}}/{{entry.likes}}'><span class="glyphicon glyphicon-thumbs-up"></span></a>
        <a href='/dislikes/{{entry.id}}/{{entry.likes}}'><span class="glyphicon glyphicon-thumbs-down"></span></a>
      </li>

      <li class="comment-area-toggle" style="cursor: pointer">Comments:</li> 
      <div class="comment-area">
          <form class="comment-box" action="{{ url_for('add_comment')}}" method="post">
            <dl>
              <li>
                <dd><textarea style="width: 80%; vertical-align: bottom;" name="commenttext" placeholder="Add a comment..." rows="1" cols="40"></textarea>
                <button id="comment" class="btn-comment" type="submit">Comment</button>
              </li>
              <dd><input type="hidden" name="commentid" value = {{entry.id}}>
            </dl>
          </form>
      {% for comment in commentonentries %}
        {% if entry.id == comment.comment_id %}
          <li style="color: rgb(70, 70, 70)">{{ comment.commenttext|safe }}</li>
        {% endif %}
      {% endfor %}        
      </div>
  

но не в этом методе.

 $(".comment-area-toggle").click(function(){
$(this).parent().next('.comment-area').slideToggle();

      <li style="margin: none !important;"> Likes: {{ entry.likes }} 
        <a href='/likes/{{entry.id}}/{{entry.likes}}'><span class="glyphicon glyphicon-thumbs-up"></span></a>
        <a href='/dislikes/{{entry.id}}/{{entry.likes}}'><span class="glyphicon glyphicon-thumbs-down"></span></a>
        <li class="comment-area-toggle" style="cursor: pointer">Comments:</li>
      </li>


      <div class="comment-area">
          <form class="comment-box" action="{{ url_for('add_comment')}}" method="post">
            <dl>
              <li>
                <dd><textarea style="width: 80%; vertical-align: bottom;" name="commenttext" placeholder="Add a comment..." rows="1" cols="40"></textarea>
                <button id="comment" class="btn-comment" type="submit">Comment</button>
              </li>
              <dd><input type="hidden" name="commentid" value = {{entry.id}}>
            </dl>
          </form>
      {% for comment in commentonentries %}
        {% if entry.id == comment.comment_id %}
          <li style="color: rgb(70, 70, 70)">{{ comment.commenttext|safe }}</li>
        {% endif %}
      {% endfor %}        
      </div>
  

Я хочу иметь возможность работать со вторым кодом, потому что в первом коде проблема в том, что я должен размещать «комментарии» в строке под лайками.
Я хочу разместить «комментарии» в той же строке, что и лайки (и я пробовал метод bootstrap row-col, и это не очень хорошее решение)
Теперь во втором коде, я думаю, (this).parent().next(‘.comment-area’) должен выбрать раздел комментариев к конкретному сообщению, но это не так.
И класс «comment-area» имеет display: none, чтобы он не отображался при загрузке страницы

Комментарии:

1. Только UL или OL могут быть родительскими для LI.

2. попробуйте nextAll — он выбирает всех братьев и сестер, а не только первый

3. О, это было полезно, спасибо, я знаю, что теперь делать 🙂