Prototype.js bekommen Sie text von einem element
Ich bin neu Protoype.JS und testen nur es ein bisschen, weil ich hörte, es war gut, aber ich bin stecken, Recht schnell.
So einfach, wie das ist mit jQuery, es scheint das Ende der Welt, um den text in einem element. Ich habe versucht innerHTML mehrere Möglichkeiten, aber das einzige, was ich kann, ist "undefined".
alert($$('.mnu_item').innerHTML);
alert($('content').innerHTML);
Keiner dieser arbeiten.
Content ein div mit der id "content".mnu_item ist ein anchor-tag mit der Klasse ".mnu_item".
Ich verstehe nicht, was das problem ist wahrscheinlich etwas doof, aber es wäre toll, wenn jemand könnte mich in die richtige Richtung!
EDIT: ich habe festgestellt, dass es sich nicht um die von innerHTML, die nicht arbeiten, aber es ist der class-Selektor. Die zweite Zeile im code oben funktioniert. Wie kann ich wählen Sie ein element in seiner Klasse in der aktuellen Prototyp-version ist dies nicht der richtige Weg?
Bildungs-Reim: Es ist ziemlich schwer zu sagen, ohne den HTML-Code.
InformationsquelleAutor hhoud | 2011-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hat das DOM geladen, wenn Sie Ihr Skript ausführen soll? Wenn Sie nicht ausführen dieses Codes in eine
window.onload
oder indem Sie es an der Ende des Körpers, dann die Elemente, indem Sie nicht existieren, wenn es läuft.Versuchen Sie, Ihr Skript nur in der Schließung
</body>
tag.Auch, die erste Zeile ist die korrekte Auswahl, sondern liefert ein Array der Elemente, so
innerHTML
wirdundefined
.Durchlaufen Sie das Array, das kannst du tun:
oder, wenn Sie wollen, um am Ende mit einer Reihe von
innerHTML
Werte:Du bist herzlich willkommen.
InformationsquelleAutor user113716
Stellen Sie sicher, dass das DOM geladen ist, bevor Sie diese tests ausführen:
Die erste Zeile des Codes $$('.mne_item') funktioniert nicht, da $$ zurück gibt ein array aller passenden Elemente die css-Regel. Also $$('.mne_item') gibt ein array von dom Elementen, die die Klasse mne_item. Sie können Fragen, die erste, indem Sie auf den ersten Methode oder die Iteration über alle Elemente wie diese:
Wenn Sie $ in jQuery, nutzt man eigentlich ein ähnliches Muster, aber blendet die jedes Konstrukt. Es gilt nur die verkettete Methode für alle Elemente oder nur die erste.
In der zweiten Zeile der code $('content').innerHTML funktionieren sollte. $ ist eine Abkürzung für Dokument.getElementById so sollte es Ihnen ein DOM-Knoten zurück. Der Grund, warum dies nicht funktioniert ist es keinen Knoten where id = Inhalt, wahrscheinlich, weil der dom geladen ist nicht noch.
Weitere Infos über die Methoden der Prototyp Blick in die api: http://api.prototypejs.org/
Überprüfen Sie auch die Standard-DOM-Methoden: http://quirksmode.org/dom/w3c_core.html
Sie handeln die gleiche, ist eine neuere Methode, die auch verarbeiten kann selector argument (siehe API)
InformationsquelleAutor Stefaan Colman
$('content').innerHTML sollte funktionieren. Überprüfen Sie Ihre HTML -, sorgen für die ID eindeutig ist.
InformationsquelleAutor Diodeus - James MacFarlane
var text = $$('label[for="display_on_amazon"]').ersten().textContent;
Obigen Codes für mich gearbeitet.
Bezug, $$('.mnu_item').innerHTML
Wenn Sie versuchen, Sie zu Holen mit class-Selektor, Prototyp Rückgabe-array von mehreren elments, indem Sie mit [0] den ersten oder () - Methode system zeigen Sie auf das erste element im array, nach, dass Sie können mit innerHtml (um html innerhalb des Elements) oder textContent (text-Inhalt des Elements, native javascript-Methode)
InformationsquelleAutor Yash Patadia