Verwenden Sie jQuery, um den Text des Ziels abzurufen

Lesezeit: 2 Minuten

Der Versuch, den Text des Zielelements eines Ereignisses aus einer ungeordneten Liste abzurufen

<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>

mit Code wie diesem

$('ul').click(function() {
theEl=(event.target.text);
});

Wenn ich mich tröste log

event.target

es kehrt zurück

 <li>Item 1</li>

und

ereignis.ziel.text

gibt undefiniert zurück

Ich möchte nur “Artikel 1”. Ich weiß, dass ich das schon einmal gemacht habe – es muss spät sein … danke für jede Hilfe 🙂

Verwenden Sie die Textfunktion von jQuery:

$(event.target).text()

Sie verwechseln rohes JS und jQuery.

In jQuery würden Sie verwenden $(event.target).text()

In JavaScript ist es jedoch viel effizienter: event.target.firstChild.nodeValue

EDIT: Hier ist ein JSPerf als Beweis dafür.

  • Gutes JSPerf – viel schneller in JS! Markierte Jeffs als richtige Antwort, weil er zuerst geantwortet hat, aber danke für die Details.

    – Charles Wyke-Smith

    6. Februar 2013 um 4:58 Uhr

Der Grund event.target.text ist undefiniert, weil für HTMLElement diese Methode oder Eigenschaft nicht definiert ist. jQuery hat jedoch text() wonach du gesucht hast. Um auf jQuery-Methoden oder -Eigenschaften zuzugreifen, müssen Sie das aktuelle HTMLElement in ein jQuery-Objekt einschließen. Dies geschieht, indem es an jQuery übergeben wird, das dann ein Funktionsobjekt damit erstellt, und den jQuery-Prototyp, der die API verfügbar macht.

jQuery(element);//in general
$(event.target).text();//for your situation

event.target.textContent

Es ist auch ein Javascript-Zugriff. Ich empfehle Ihnen, die Javascript-Konsole „Chrome“ (oder Firefox) mit auszuführen Ctrl+Shift+J. Schreiben Sie in Ihren Code: console.log(event) und schau dir das auf der Konsole an. Sie können jedes Attribut des Objekts beobachten.

Versuchen Sie dies -> event.target.innerText

993980cookie-checkVerwenden Sie jQuery, um den Text des Ziels abzurufen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy