# getElementById() und innerHtml



## messmar (13. November 2006)

Ich versuche mit dem folgenden Code in einem Div die Links zu schreiben, aber es wird nicht rein geschrieben. Hat Jemand einen Tipp oder Idee, was ich hier besser machen könnte?

Etwa mit createElement()? Aber ich dachte, dass das mit getElementById() und innerHtml reichen wird.



```
var links = new Array(4);
			
			links["Audi"] = "javascript:showCar('car-audi_1.jpg');imgLayer2();";
			links["Opel"] = "javascript:showCar('car-opel_1.jpg');imgLayer2();";
			links["Honda"] = "javascript:showCar('car-honda_1.jpg');imgLayer2();";
			links["VW"] = "javascript:showCar('car-vw_1.jpg');imgLayer2();";
			
			alert(document.getElementById('infoText').title);
			document.getElementById('infoText').innerHTML =
			"<div id='errorMessage' style='width:200px;height:auto;border:1px solid green; padding:0.5em;z-index:600;'><ul>";
			for(var e in links)  {
				+"<li>";+
				"<a href='" + links[e] + "' id='" + e + "' style='text-decoration:none;'>" + e + "</a></li>";
			}
			+"</ul></div>";
			document.getElementById('infoText').innerHTML;
```

Danke und Gruss
Messmar


----------



## messmar (13. November 2006)

Stop Stop.

Ich habe es jetzt:


```
for(var e in links)  {
				var newLi = document.createElement("li");
				var newA = document.createElement("a");
				
				newLi.id="hyperlinkList";
				newA.id=e;
				
				newA.href=links[e];
				newA.Text=links[e];
				
				newLi.style.padding="3px";
				document.getElementById("hyperlinkUl").appendChild(newLi);
				document.getElementById("hyperlinkList").appendChild(newA);
			
			}
```

Aber ein Punkt fehlt mir noch und zwar das hier:

```
newA.Text=links[e];
```

Das scheint nicht der richtige Befehl, um den Hyperlink-Text für den Anker einzufügen zu scheint.

Danke
Messmar

Hat Jemand eine Idee, wie ist ich den Hyperlink-Text einfügen kann?


----------



## Mark (14. November 2006)

Hi Messmar!

Zunächsteinmal: bin überhaupt kein Javascript-Profi und habe so gut wie noch nie etwas mit den "nodes" gemacht. Fand Deine "Aufgabe" aber so interessant, daß ich selbst anfing damit zu "spielen" ... die vorgestellte Lösung ist somit völlig ohne Gewähr und ich hoffe, ein Javascript-Profi korrigiert evtl. Fehler... 
Hinzu: ich weiß garnicht genau, was Du benötigst. Folgendes erzeugt in einem vorhandenen *div* eine *ul* mit den im Array angegebenen Links als *li*.
Für's "Studium" sei nochmal das fabelhafte Selfhtml erwähnt 

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>linkliste</title>
 
<script type="text/javascript">
var links = new Array(4); 
links["Audi"] = "javascript:showCar('car-audi_1.jpg');imgLayer2();";
links["Opel"] = "javascript:showCar('car-opel_1.jpg');imgLayer2();";
links["Honda"] = "javascript:showCar('car-honda_1.jpg');imgLayer2();";
links["VW"] = "javascript:showCar('car-vw_1.jpg');imgLayer2();";
 
function createlinklist() {
    var ll = document.getElementById("linkliste");
    var ul = document.createElement('ul');
    ll.appendChild(ul);
 
    for(var e in links) {
        var newA = document.createElement('a');
        newA.setAttribute('href', links[e]);
        newA.appendChild(document.createTextNode(e));
 
        var newLi = document.createElement("li");
        newLi.appendChild(newA);
 
        ul.appendChild(newLi); 
    }
}
</script>
 
</head>
<body>
<div id="linkliste"></div>
<p><a href="#" onClick="createlinklist();">Erzeuge Linkliste</a></p>
</body>
</html>
```
Ich hoffe, Du kannst damit etwas anfangen und es ist nicht vollkommender Stuss! 

Liebe Grüße,
Mark.


----------

