2009-12-15 14 views
5

html:jQuery: Wie wähle ich alle P Kinder meiner Eltern aus?

<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> 

Die Javascript Ich versuche:

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

Ich möchte alle P auszuwählen, die Kinder des angeklickten Elements Eltern sind, und die versteckte Klasse von ihnen zu entfernen. In der Logik will ich nichts von der ID des enthaltenden div annehmen oder auch nur, dass es ein div enthält. Ich möchte nur alle P-Kinder des Elterncontainers.

Wie mache ich das? In the selector syntax kann ich einen Weg finden, Nachkommen oder Kinder zu bekommen. Ich kann keine Möglichkeit finden, Eltern oder Aszendenten auszuwählen. Fehle ich etwas? danke.

Antwort

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

Das findet P, die unmittelbare Kinder sind. $ ("div p") findet alle P-Tags innerhalb aller DIV-Tags unabhängig vom Level. –

0

Ich mag am nächsten verwenden, da es oben sprudelt:

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

oder betrachten:

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

[Update] Basierend auf Kommentaren unten und anderen Antworten:

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

.show() doe Entfernen Sie nicht das Klassenattribut, aber am nächsten ist eine gute Idee im Allgemeinen –

+0

Haben Sie etwas dagegen, warum Sie denken, dass das besser ist. Das sieht interessant aus, aber ich habe diesen Ansatz anderswo nicht gesehen. –

+0

Das Problem mit "am nächsten" ist, dass Sie das Vorhandensein eines "div" annehmen, das das OP nicht will. Geschwister sind jedoch eine gute Idee. – Joel

Verwandte Themen