2009-12-15 143 views
5

HTML:jQuery:如何選擇我父母的所有P孩子?

<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的id做任何假設,甚至不想包含div。我只想要父容器的所有P孩子。

我該怎麼做?

the selector syntax,我可以找到一種方法來獲得後代或兒童。我無法找到選擇父母或上司的方法。我錯過了什麼嗎? 謝謝。

回答

15
$(this).parent().children("p.hidden").removeClass("hidden"); 
+3

這發現P是直接的孩子。 $(「div p」)查找所有DIV標籤內的所有P標籤,而不管其級別如何。 – 2009-12-15 16:27:28

0

我喜歡用最接近的,因爲它冒泡:

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

[更新]基於下面的評論和其他答案:

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

或考慮

$(this).siblings("p.hidden").removeClass("hidden"); 
+0

.show()doe不要刪除班級屬性,但最接近的一般是一個好主意 – 2009-12-15 16:26:33

+0

您是否介意拓展爲什麼您認爲這更好?這看起來很有趣,但我還沒有在別處看到過這種方法。 – 2009-12-15 16:26:51

+0

「最接近」的問題是,你假定OP不需要的'div'的存在。然而兄弟姐妹是個好主意。 – Joel 2009-12-15 16:30:14

相關問題