2016-04-27 13 views
1

Ich versuche, eine Demonstration Art der Sache in meiner Seite zu erstellen.jQuery: Nach Klassennamen ausblenden und dann das nächste Element mit demselben Klassennamen anzeigen?

grundsätzlich das erste Element wird auf der Seite angezeigt, laden und der Rest sind ausgeblendet.

Sobald die Schließen-Schaltfläche innerhalb des Elements angeklickt wurde, muss ich dieses Zeigeelement ausblenden und das nächste Element mit dem gleichen Klassennamen anzeigen und den gleichen Prozess, bis kein Element mehr im next() angezeigt wird.

mein html sieht wie folgt aus:

<a class="tooltip" href="#"> 
<div style="left:-200px;" class="bubs"><div style=" position:absolute; top:10px; right:10px;"><i class="cls" aria-hidden="true"></i></div></div> 

<span class="tooltiptext">Some texts</span><i style="color:#F90;" class="fa fa-thumbs-up" aria-hidden="true"></i></a> 



<a class="tooltip" href="#"> 
<div style="left:-200px;" class="bubs"><div style=" position:absolute; top:10px; right:10px;"><i class="cls" aria-hidden="true"></i></div></div> 

<span class="tooltiptext">Some texts</span><i style="color:#F90;" class="fa fa-thumbs-up" aria-hidden="true"></i></a> 

Und meine Jquery sieht wie folgt aus:

$('.cls').click(function() { 
    $('.bubs').hide(); 
    $(".bubs").next().show(); 
}); 

Meine einfache Code wird .bubs verstecken, die es zeigt aber zeigt nicht die nächste .bubs

Könnte jemand bitte zu diesem Thema beraten?

Vielen Dank im Voraus.

+0

Öffnen Sie Ihre Browser-Konsole. Führe den Code "$ ('. Bubs') aus. Hide();" Führen Sie dann "$ (". bubs ") aus. next()" Wenn Sie das Element auswählen, das Sie anzeigen möchten, dann rufen Sie $ (". bubs") auf. next(). show(); – randominstanceOfLivingThing

Antwort

1

.bubs sind keine Geschwister. Gehe zum Vorfahren a und finde dann .bubs im nächsten a wie folgt.

$('.cls').click(function() { 
    $(this).closest('.bubs').hide(); 
    $(this).closest('a').next('a').find('.bubs').show(); 
}); 
+0

hat das leider nicht funktioniert. blendet das erste Element aus, zeigt aber nicht das nächste Element an. – Jackson

+0

ah, überprüfen Sie die doppelte $$ – Jackson

1

Die JQuery Methode "next" die Klasse des nächsten Elements enthalten sollten Sie show.It will, sollte funktionieren, wenn Sie nächstes verwenden ("bubs.") Wie folgt aus:

$('.cls').click(function() { 
$('.bubs:first').hide(); 
$(".bubs:first").next(".bubs").show(); 
}); 

Hinweis: Ich nehme an, dass das Element, das du verstecken willst, das erste ist, das die Klasse "bubs" hat.

+0

Was ist damit: $ ('. Cls'). Click (function() { $ ('. Bubs: erste'). Hide(); $ (". Bubs: first"). Engste (". Bubs ") .show(); }); – user3078643

+0

der Jacksons Code funktioniert. Danke für die Hilfe. – Jackson

Verwandte Themen