2016-05-22 5 views
0

У меня есть проблема с получением html() ценности ребенка родителя: DНе удается получить доступ потомок HTML элемента с помощью JQuery

function voteup(e){ 
 
    var count = $(e).parents('.item').children('.count'); 
 
    console.log(count.html()); // undefined 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="post_contain"> 
 
    <img src="images/comments/dQ6dz.jpg" alt=""> 
 
</div> 
 
<div class="item"> 
 
    <p class="post-meta"> 
 
    <span href="/gag/agVzE1g" target="_blank"> 
 
     <span class="count">5</span>points 
 
    </span> 
 
    </p> 
 
    <div class="vote"> 
 
    <ul class="btn-vote left"> 
 
     <li class="badge-item-vote-up-li"> 
 
     <a onclick="voteup(this)">Click me</a> 
 
     </li> 
 
    </ul> 
 
    </div> 
 
</div>

В функции voteup(e), мне нужно получить значение класса 'count', но я не получаю значение с html()

+0

Просьба представить декларацию 'voteup' –

+4

. Этот заголовок вопроса имеет такое значение, когда сталкивается с ним с [Parenting.SE] (http://parenting.stackexchange.com/). – WBT

+0

Ничего себе, спасибо за редактирование ... Английский не мой родной язык, извините: S –

ответ

3

children только проходит один уровень DOM tre е. он не найдет внуков.

Вместо этого используйте closest найти .item - который находит единственный ближайший матч, в отличие от parents, которые могут найти несколько - и find, чтобы найти ребенка, так как это будет проходить сколь угодно глубокие HTML структуры:

function voteup(e){ 
    var count = $(e).closest('.item').find('.count'); 
    alert(count.html()); 
    var actual = parseInt(count.html(), 10); 
    count.text(actual + 1); 
} 
+0

Спасибо! Я новичок в JQuery и JS :) –

Смежные вопросы