JQuery slidedown erstes Kind Level-Elemente
Frage
Ich habe eine Klasse von divs ( 'open') die enthalten eine andere Klasse von divs ( 'Artikel') wie folgt aus:
<div class="open">
<div class="item">
this is a test 1
</div>
<div class="item">
this is a test 2
</div>
</div>
Was ich suche zu tun, ist ein slidedown alle ‚item‘ Klasse divs, die in der ‚offenen‘ Klasse sind, die angeklickt wird.
Bisher habe ich
$(document).ready(function () {
$('.open').click(function () {
$(this).find(':first-child').slideDown('1000');
});
, aber es funktioniert nicht. Irgendwelche Vorschläge?
Danke, John
Lösung
Statt :first-child
Sie sofortige Kinder , die Sie in diesem Fall unter Verwendung von .children()
, wie diese bekommen:
$('.open').click(function () {
$(this).children().slideDown('1000');
});
:first-child
für das Erhalten des ersten Child-Element auf jeder Ebene (und in jeder "Zweig"), .children()
oder die Kindselektor (>
) für immer alle sofort / sind "first level" Kinder.
Andere Tipps
Wie wäre es
$(".open").click(function() {
$(this).children().slideDown(1000);
});
Zuerst nehme ich an, dass Sie schließen tatsächlich von der $(document).ready
, da in dem Codeblock Sie auf dem Laufenden, es ist nicht geschlossen. Stellen Sie sicher, Sie tun so in Ihrem Code.
Zweitens sind Sie nicht nur auf der Suche nach children()
von .open
? In diesem Fall werden Sie wollen
$(document).ready(function() {
$('.open').click(function() {
$(this).children('.item').slideDown('1000');
});
});
Edited . Dank Kommentare habe ich den live()
Vorschlag entfernt