Ближайшие и родительские/найти методы jQuery не работают с определенным div

У меня есть div со следующим содержимым:

Мой HTML:

<div class="panel-footer">
    Cat1: <span class="badge">5</span>&nbsp;&nbsp;
    Cat2: <span class="badge">3</span>&nbsp;&nbsp;
    <a href="javascript:void(0)" class="viewComments">Comments:</a> <span class="badge cntComments">2</span>
    <span class="pull-right">
        <button class="btn btn-default btn-xs">Delete</button>&nbsp;&nbsp;
        <button class="btn btn-default btn-xs">Add</button>
    </span>
</div>

Я пытаюсь получить текст диапазона с классом «cntComments» с помощью jQuery (поэтому в этом случае он должен возвращать «2»), но когда я предупреждаю об этом, он всегда показывает мне пустое предупреждение. Я также пытался использовать «parent()» вместо «closest()», но это тоже не сработало.

Что я здесь делаю неправильно?

Мой jQuery:

$(document).on('click', '.viewComments', function() {
    var cntComments = $(this).closest('div.panel-footer').find('cntComments').text();
    alert(cntComments);
    // ...
});

person user2571510    schedule 25.08.2014    source источник
comment
Вы забыли ., это .find('.cntComments');   -  person Tasos K.    schedule 25.08.2014


Ответы (2)


Вам не хватает селектора класса . в методе поиска:

var cntComments = $(this).closest('div.panel-footer').find('.cntComments').text();

Рабочая демонстрация

person Milind Anantwar    schedule 25.08.2014
comment
Большое спасибо - это так. :) Приму, как только смогу. - person user2571510; 25.08.2014

измените .find('cntComments') на .find('.cntComments') вы забыли . селектор класса

$(document).on('click', '.viewComments', function() {
var cntComments = $(this).closest('div.panel-footer').find('.cntComments').text();
alert(cntComments);
// ...
});

Демо

person Mohit Kumar    schedule 25.08.2014
comment
Спасибо и за это! - person user2571510; 25.08.2014