jQuery: Как мне выбрать всех детей P моего родителя? - PullRequest
5 голосов
/ 15 декабря 2009

HTML:

<style>
   hidden { display:none;}
</style>

<div id="div1">
  <a href="#" onclick="expandSiblingParagraphs(this)">+</a>
  <p>Hello</p>
  <p class="hidden">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 
    Integer vulputate, nibh non rhoncus euismod, erat odio pellentesque lacus, 
    sit amet convallis mi augue et odio. Phasellus cursus urna facilisis quam.
    Suspendisse nec.</p>
  <p class="hidden">Another hidden paragraph</p>
</div>

Javascript, который я пытаюсь:

var expandSiblingParagraphs = function(elt){
  $(this).parent()....?
};

Я хочу выбрать все P, которые являются потомками родительского элемента, по которому щелкнули, и удалить из них скрытый класс. В логике я не хочу предполагать что-либо об идентификаторе содержащего div или даже о том, что существует содержащий div. Я просто хочу, чтобы все дети P родительского контейнера.

Как мне это сделать?

В синтаксис селектора я могу найти способ получить потомков или потомков. Я не могу найти способ выбрать родителей или восходящих. Я что-то пропустил? спасибо.

Ответы [ 2 ]

16 голосов
/ 15 декабря 2009
$(this).parent().children("p.hidden").removeClass("hidden");
0 голосов
/ 15 декабря 2009

Мне нравится использовать ближайший, так как он пузырится:

$(this).closest("div").find("p").show()

или рассмотрим:

$(this).siblings("p").show();

[Обновить] На основе комментариев ниже и других ответов:

$(this).siblings("p.hidden").removeClass("hidden");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...