Ich habe eine Funktion, die eine li mit einer aktiven Klasse auf einen Klick auf die Schaltfläche entfernt. Wenn der aktive Li entfernt wird, muss ich die aktive Klasse auf den nächsten li übertragen. Sowohl .next als auch .prev funktionieren gut, berücksichtigen aber nicht, wenn ich den ersten oder letzten li entferne. In diesem Fall wird .next oder .prev nicht funktionieren.jQuery - Finde nächsten Geschwister zum Listenelement - nächste oder vorherige
Gibt es eine andere Funktion, die ich hier neben einer if-Anweisung verwenden kann? Leider hat das engste für mich nicht funktioniert.
HTML
<ul>
<li class="active">List item #1</li>
<li>List item #2</li>
<li>List item #3</li>
<li>List item #4</li>
<li>List item #5</li>
</ul>
JS
$('.conversations-wrap').on('click', '.delete-message', function(){
// delete sidebar element
$('.message-details.active').remove();
// change sidebar active
$('.message-details.active').closest('li').addClass('active');
});
Dank mate, das funktioniert gut. Ich hoffte auf einen Weg, es ohne eine if-Anweisung zu machen, aber wenn das der einzige Weg ist, auf den ich eingehen werde. –
@ClintonGreen Ich denke, es gibt keine Möglichkeit, nicht zu verwenden, wenn Anweisung, um das letzte Element oder sogar die erste zu überprüfen .. Ich werde versuchen, darüber nachzudenken .. aber ich bin ein wenig sicher, es gibt keine Möglichkeit –
Ja, ich habe es früher mit einer If-Anweisung versucht, indem ich li: first-of-type verwendet habe, konnte aber nicht herausfinden, warum es die ausgewählte und die nächste entfernte. Es war, weil ich der anderen die aktive Klasse schrieb, bevor ich die andere entfernte. Ihre .toDelete-Klasse hat den Tag gespeichert. Danke –