JQuery .each() zum Umschalten der versteckten Elemente
Sehr neu in JQuery und bin kämpfen, um zu verstehen .each().
Ich würde gerne in der Lage, klicken Sie auf eine überschrift, und der Absatz unter dieser überschrift erscheinen, und dann verschwinden. Im moment kann ich nur den ersten Absatz zu wechseln.
Mein code ist:
<script>
$(document).ready(function(){
$("h2").click(function(){
$("#hidden").each(function(){
$(this).toggle();
});
});
});
</script>
<h2>HEADING 1</h2>
<div id="hidden" style="display:none">
<p>paragraph 1</p>
</div>
<h2>HEADING 2</h2>
<div id="hidden" style="display:none">
<p>paragraph 2</p>
</div>
Vielen Dank für jede Hilfe!!!
- HTML-ids müssen eindeutig sein. Wenn Sie möchten, zu teilen eine Kennung zwischen mehreren Elementen einer Klasse. Darüber hinaus
.each
wäre nicht erforderlich, weil sowieso$("#hidden").toggle()
würde das gleiche tun. - und BTW, Ihr jede Schleife ist nutzlos
Du musst angemeldet sein, um einen Kommentar abzugeben.
ID ane-element muss eindeutig sein, verwenden Sie class-Attribut zur Gruppierung ähnlicher Elemente
dann gibt es auch keine Notwendigkeit zur Verwendung eines each-Schleife, die Sie anrufen können .toggle() in der jQuery-wrapper zurück durch den Selektor $('.hidden')
Update nicht Lesen Sie die vollständige Frage scheint die Frage zu sein, wie Sie zum Umschalten die nächste div
Demo: Fiddle
each
ist nicht das problem hier. Sie nicht wirklich brauchen, zu verwendeneach
.Das Problem ist die Auswahl der hidden div mit einer ID (
'#hidden
), dies wird nur das erste Gefundene element, wie es wird erwartet, dass ID ' s eindeutig sein.Dies zu umgehen, können Sie den code ändern, um dies unter der Annahme, dass das div, die Sie möchten, zu wechseln ist immer direkt nach der überschrift-tag:
Dies schaltet die Sichtbarkeit der nächste div-nach der h2, auf die geklickt wurde.
Beispiel - http://jsfiddle.net/VcRLM/
Eine ID muss eindeutig sein. Ihre id ("hidden") zweimal verwendet wird. Sie können Klassen statt.
Update:
Nur klebte den code auf jsfiddle und sah, dass Sie einen Absatz unter jeder überschrift.
Verwenden Sie einen Behälter oder ein Attribut zum Umschalten in diesen Absätzen.
HTML:
JS:
HINWEIS: es eine gute Idee, das ausblenden des div mit javascript, so dass
javascript-deaktiviert Browser noch sehen können, die #hidden-div, damit wird der code sein:
Richards Antwort war gut, aber ich bevorzuge unaufdringliche Art und Weise zu tun, Dinge wie diese, etwa so:
Html:
Skript:
sorry, ich glaube, Sie hat nicht das verstehen der Bedeutung .each()
den Weg, den Sie schrieb den code, es bedeutet, dass Sie Ihre Funktion wird Durchlaufen und jedes KIND innerhalb der div "versteckt".
übrigens:
Eine ID sollte nicht mehr als EINMAL verwendet werden. also dein html-code ist ungültig, der zweite versteckt sollte mehr wie "hidden1" ... was du suchst ist "Klasse" also, wenn Sie mit Klassen arbeiten, können Sie mit den gleichen classname mehr als einmal.. Sie können den folgenden code verwenden:
und nun eine Erklärung der Funktion "jeder"
wenn Sie eine Liste wie:
sind und Sie die .each () - Funktion für die id "mylist" wie folgt:
tun Sie auch wissen, was Schleifen sind? wie: for, foreach, while, etc. ?