Wie nicht-direct linkes Geschwister mit jQuery auszuwählen?
Frage
<span>This is the span I want to select</span>
<div>something here</div>
<a id="start"></a>
Nehmen wir nur Zugriff auf $ ( '# start')
Ich habe versucht, $ ( '# start'). Zurück ( 'Spanne'), aber nicht funktioniert.
Lösung
$('#start')
.parent() // gets one up
.find('span') // gets the span element
gleicher Code mit jsbin Sandbox
Hinweis:
Sie können nicht zurück () verwenden, da es nur den vorherigen Tag bekommt, und Spanne, von dem Anker-Tag ist nicht die vorherige die vorherige die vorherigen ist
Hier finden Sie eine Reihe von Elementen, die einzigartigen vorherigen Geschwister von jedem der aufeinander abgestimmten Satz von Elementen enthält. Verwenden eines optionalen Ausdruck den aufeinander abgestimmten Satz zu filtern. Nur die unmittelbar vorherigen Geschwister zurückgegeben , nicht alle vorherigen Geschwister.
prev([filter])
ist der Filter zu filtern, wenn der vorherige Tag mehr als eine, wie:
<div>
<span></span>
<a></a>
</div>
<a id="a2"></a>
erhalten die Spanne Sie verwenden:
$('#a2').prev('span')
Andere Tipps
Schräge, es scheint, dass prevAll
rückwärts geht, auf dem ersten Start direkt hinter dem Startelement und arbeitete seinen Weg zurück. Das macht Sinn, nehme ich an. So oder so, die folgenden für mich gearbeitet:
//jquery :
$(document).ready(function(){
$("#start").prevAll("span:first").css("font-weight", "bold");
});
// html:
<span>This is the span I don't want to select</span>
<span>This is the span I want to select</span>
<div>something here</div>
<a id="start">Stuff</a>