• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Anfänger Frage Knoten auslesen

ePole73

New member
Hallo,

ich versuche mittels JS einen Knoten auszulesen, in diesem Fall was innerhalb des <span> Tags steht.

Beispiel:
HTML:
<div class="waehrung waehrung-aktiv">
<span>EUR</span>
</div>

Das ich hiermit arbeiten muss ist mir schon klar:

HTML:
x = document.getElementsByClassName("waehrung waehrung-aktiv");

Doch wie gehe ich weiter vor?
Einige Tips für mich?

GLG
Jack
 
Jetzt müsstest du über x iterieren und den "richtigen" finden (du schreibst im Singular "einen Knoten auszulesen").
Beispiel: drittes Example dort unter "More Examples" --> https://www.w3schools.com/jsref/met_document_getelementsbyclassname.asp

Aber wenn es wirklich mehrere gibt und alle so aussehen, dürfte das schwierig werden. Kannst du dem gesuchten nicht eine id verpassen?

Wenn es nur einer ist sollte der in x[0] stehen. x ist wie ein Array addressierbar.
 
Freut mich zu lesen. Bin froh über jede Frage und besonders über die, die ich beantworten kann :)
 
Danke mikdoe,

kannst Du mir einen Wink geben, warum das hier nicht einen Wert, sondern UNDEFINED ergibt?

HTML:
<html>
<script>
function klickme() {
   var div_data = document.getElementsByClassName("waehrung waehrung-aktiv").innerHTML;
   alert (div_data);
}
</script>

<body>

<div class="waehrung waehrung-aktiv">
<span>EUR</span>
</div>

<button onclick="klickme()">Click Me</button>


</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Das habe ich doch schon beantwortet. .getElementsByClassName() liefert nicht einen Knoten sondern eine Art Liste. Du musst darin den Richtigen finden. Wenn es nur einen gibt steckt es in der [0].

Und alert() gewöhne dir am besten gar nicht erst an. Nimm bitte console.log() und öffne dieselbe mit F12. Da siehst du nämlich die arrayähnliche Struktur deiner Knotenkollektion.
 
Aaaahhh sorry mikdeo, es gibt nur ein Vorkommen und ich hatte es tatsächlich auch so versucht
HTML:
div_data[0]

Allerdings ergab es das gleiche Ergebnis:
Es ist bei dieser Anordnung immer noch UNDEFINED

HTML:
<html>
<script>
function klickme() {
   var div_data = document.getElementsByClassName("waehrung waehrung-aktiv").innerHTML;
   console.log(div_data[0]);
}
</script>

<body>

<div class="waehrung waehrung-aktiv">
<span>EUR</span>
</div>

<button onclick="klickme()">Click Me</button>


</body>
</html>


CONSOLE:

40093695dn.png


Danke für die Erinnerung mit der Console, ich habe schon zu lange nicht mehr mit JS gearbeitet :)

GLG
Jack
 

Anhänge

  • undefined.png
    undefined.png
    11,3 KB · Aufrufe: 1
Nicht document.getElementsByClassName("waehrung waehrung-aktiv").innerHTML sondern document.getElementsByClassName("waehrung waehrung-aktiv"). Es werden ja nur Nodes gesammelt.

HTML:
<!DOCTYPE html>
<html>
	<head>
		<title>Test</title>
		<meta charset="utf-8">
	</head>

	<body>
		<div class="waehrung waehrung-aktiv">
			<span>EUR</span>
		</div>

		<button onclick="klickme()">Click Me</button>

		<script>
			function klickme() {
				var div_data = document.getElementsByClassName("waehrung waehrung-aktiv");
				console.log(div_data[0].innerHTML);

				// oder Einzeiler:
				console.log(document.getElementsByClassName("waehrung waehrung-aktiv")[0].innerHTML);
			}
		</script>
	</body>
</html>
 
Zurück
Oben