2016-04-13 23 views
1

jQuery için yeni. Bir ajax isteği gönderen ve sonraki p öğesinin metnini değiştirmek istediğim bir bağlantıyı tıklıyorum. Benim html kodu:jQuery kullanarak sonraki veya son elemem nasıl seçilir

   <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> 

Benim jQuery Kodu:

$(".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'); 
} 

Sorunum likersCount içeren p eleman değiştiremezsiniz olduğunu. .next().last() vb. Denedim. Lütfen yardım edin. Şimdiden teşekkürler.

+0

Bu salt HTML değil. Lütfen ekte kullanılan ek kütüphaneyi tanımlayan bir etiket ekleyin * (angular.js, node.js veya neyse - bunun için bir etiket var. Sadece yazmaya başlayın) * – gibberish

cevap

2

Sonunda çözümü buldum. Yerine

:

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

ben sadece kullanmak zorunda:

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

Bu kaçınılmaz kesin gereklilik ertesi p elemanı olarak seçecektir.

0

.siblings() seçiciyi arıyor olabilirsiniz. HTML'nizi geçmek için diğer jQuery seçicilerle kullanabilirsiniz.

Bu seçici, tüm öğeleri, onu adlandırdığınız öğeyle aynı düzeyde alır. Daha fazla bilgiyi burada bulabilirsiniz. http://api.jquery.com/siblings/

İlgili konular