jquery, как выбрать this.parent? - PullRequest
       0

jquery, как выбрать this.parent?

1 голос
/ 15 ноября 2009

Фрагмент ниже повторяется много раз на странице. Когда я нажимаю .load_comments, как я могу выбрать .answer_comments?

Полагаю, самый простой способ сделать это - сначала выбрать родителя (.single_answer), а затем просто использовать селекторы-потомки, чтобы выбрать нужный мне div. У меня проблемы с выбором родителя .single_answer. Использование $ (". Single_answer: parent") выбирает ВСЕ эти элементы на странице, что имеет смысл, поскольку все они являются родителями чего-либо.

Я не уверен, что можно использовать что-то вроде $ (this) .parent ...? Я не могу понять синтаксис, но я знаю, что я близко.

Спасибо за любые указатели.

<div class="single_answer">
<p class="answer_author">On 12 Nov X said: </p>
<p class="answer_text">Bla</p>
<a href="#" id="" onclick="return false" class="load_comments">View 2 Comments</a>
<a href="#" id="aid_16-qid_54" onclick="return false" class="comment">Comment</a>
<div class="container answer_form_container"> </div>
<div class="container answer_comments"> </div>
</div>

Ответы [ 4 ]

4 голосов
/ 15 ноября 2009

Попробуйте это:

$('.single_answer .load_comments').click(function() {
    $(this).closest('.single_answer').find('.answer_comments');
    return false;
}

Это будет немного более устойчивым к изменениям в вашей структуре: оно позволит найти ближайшего предка (родителя, деда и т. Д.).

В качестве альтернативы, если вы знаете, что answer_comments всегда является другим потомком того же родителя:

$(this).siblings('.answer_comments')

... тоже найду.

0 голосов
/ 15 ноября 2009

Я думаю, это то, что вы ищете.

$('.load_comments').click(function() { 

$(this).siblings('.answer_comments').html('this text will appear in the appropriate .answercomments div');

});
0 голосов
/ 15 ноября 2009

Если вы знаете имя класса, почему бы не выбрать элемент напрямую $('.answer_comments') вместо прохождения через родительский элемент? Или же укажите элемент, который вы хотите выбрать уникальный id, а затем: $('#my_unique_element')

0 голосов
/ 15 ноября 2009

parent - это метод, а не атрибут. Попробуйте $(this).parent() вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...