2016-04-13 3 views
1

Я новичок в jQuery. Я нажимаю ссылку, которая отправляет запрос ajax, а в обратном вызове я хочу изменить текст следующего элемента p. Мой HTML-код:Как выбрать следующий или последний элемент с помощью jQuery

   <div> 
       <img src="/images/{{comment.commenterPicName}}" class="img-circle"> 
       <b>{{comment.commenterFirstName}}</b> 
       <p>{{comment.commentMessage}}</p> 

       {% if comment.isLiked %} 
        <a class="comment-like" id="{{comment.id}}">Unlike</a> 
       {% else %} 
        <a class="comment-like" id="{{comment.id}}">Like</a> 
       {% endif %} 
        <p>{{comment.likersCount}}</p> 
       </div> 

Мой JQuery Код:

$(".comment-like").click(function(e) { 
var el = $(this); 
if ($(this).html() == "Like") { 
    var parameters = { commentId: $(this).attr('id')}; 
    $.get(
     "/likeComment", 
     parameters, 
     function(data) { 
      el.parent().children('p').last().text(data); 
     } 
    ); 
    $(this).html('Unlike'); 
} 
else { 
    var parameters = { commentId: $(this).attr('id')}; 
    $.get(
     "/unlikeComment", 
     parameters, 
     function(data) { 
      el.parent().children('p').last().text(data); 
     } 
    ); 
    $(this).html('Like'); 
} 

Моя проблема в том, что я не могу изменить p элемент, содержащий likersCount. Я пробовал .next().last() и т. Д. Пожалуйста, помогите. Заранее спасибо.

+0

Это не чистый HTML. Пожалуйста, добавьте тег в нижней части вопроса, который идентифицирует дополнительную библиотеку, используемую * (angular.js, node.js или что-то еще - для нее есть тег. Просто начните вводить ее) * – gibberish

ответ

2

Я наконец нашел решение.

Вместо:

el.parent().children('p').last().text(data); 

Я должен был использовать просто:

el.next('p').text(data); 

Это неизбежно будет выбрать следующий p элемент, который был именно требование.

0

Возможно, вы ищете селектор .siblings(). Вы можете использовать его с другими селекторами jQuery для перемещения вашего HTML-кода.

Этот селектор получает все элементы на одном уровне с любым элементом, из которого вы его вызываете. Здесь вы можете найти более подробную информацию. http://api.jquery.com/siblings/