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.

War es hilfreich?

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

jQuery Dokumentation

  

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top