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.
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
9939800cookie-checkVerwenden Sie jQuery, um den Text des Ziels abzurufenyes