DOM - Liste aller Elemente mit Attributen

  • Themenstarter Themenstarter Netzwerkidi
  • Beginndatum Beginndatum
N

Netzwerkidi

Hallo,

ich bin mir sicher, für die Cracks hier ist das folgende eine lockere Fingerübung, aber wie bekomme ich mit Javascript eine Liste aller Attribute (und damit dann deren Werte) eines Elements oder aller Elemente eines Dokuments - aber ohne den Namen des Attributs bereits zu kennen!

Egal, wo ich jetzt nachgeforscht habe, immer wird vorausgesetzt, dass man das Attribut bereits kennt, wenn man den Wert dieses Attributes haben möchte.

Wie auch hier http://javascript.info/tutorial/attributes-and-custom-properties#attributes , wo z. B. ein Attribut "about" abgefragt wird.

Zusammengefasst: dynamische Ermittlung der Attribute (Properties...) von Elementen des DOM

Pseudocode:

Code:
for (e in Elements) {
  for (ea in ElementAttributes[e]) {
    document.write(attribute[ea].name + " = " + attribute[ea].value);
  }
}

Grüße
Netzwerkidi
 
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	
	<title>Iterate attributes</title>
</head>

<body>
	<div id="foobar">
		<input type="text" id="txt" />
		<p title="bier"></p>
	</div>
	
	<script type="text/javascript">
	/* <![CDATA[ */
	var elements = document.getElementsByTagName('*');
	
	for(var i=0; i<elements.length; i++) {
		var el = elements[i];
		var att = el.attributes;
		
		for(var k=0; k<att.length; k++) {
			document.write(att[k].nodeName + "=" + att[k].nodeValue);
			document.write("<br />");
		}
	}
	/* ]]> */
	</script>
</body>

</html>

Edit: Übrigens sind Attribute und Properties etwas unterschiedliches!
 
Zuletzt bearbeitet:
Properties habe ich nur genannt um anzudeuten, dass es um eine (vermutlich) vergleichbare Logik geht!
Auf Firefox und Opera läuft das Dokument, auf dem Internet Explorer nicht.
Findet offenbar die 10 Elemente aber dann keine Attribute dazu.
Werde ich mal suchen jetzt, woran das liegt.
Merci mal erst!!
 
Zurück