Attribute setzen im IE
Hi,
ich habe eine ähnliche Frage weiter unten gestellt, konnte sie aber anders lösen.
Schaut euch mal bitte den Code an:
[CODE]
<html>
<head>
<title>TestJS</title>
<script type="text/javascript">
var zaehler = 3;
function add() {
var newDiv = document.createElement("div");
var newDivText = document.createTextNode("item" + zaehler);
newDiv.appendChild(newDivText);
newDiv.setAttribute("id", "item" + zaehler);
newDiv.setAttribute("onClick", "javascript:alert('es geht');");
//var jsatt = document.createAttribute("onClick");
//jsatt.nodeValue = "javascript:alert(getString());";
//newDiv.setAttributeNode(jsatt);
document.getElementById('main').appendChild(newDiv);
//alert(document.body.outerHTML);
//alert(document.getElementById('item' + zaehler).attributes[1].nodeValue );
zaehler++;
}
function getString() {
return "Es geht";
}
</script>
</head>
<body id="body">
<p id="p"><a href="javascript:add();">add</a></p>
<div id="main">
<div id="item0" class="item1">item0</div>
<div id="item1" class="item1">item1</div>
<div id="item2" class="item1">item2</div>
</div>
<script type="text/javascript">
//alert(document.body.outerHTML);
</script>
</body></html>
[/CODE]
Und so solte es funktionieren: Klick auf add erzeugt neues Element mit Attributen
id und onclick. bei klick auf das neue Element soll der javascript code in onclick
ausgewertet werden, also hier soll eine messagebox aufgehen.
Das funktioniert mit Mozilla und NICHT mit IE (6.0).
setAttribute funktioniert (wie auch bei class) nicht.
createAttribute, nodeValue, setAttribbuteNode funktioniert auch nicht. (laut selfhtml auch nur unter ie6.0)
Und alert(document.getElementById('item' + zaehler).attributes[1].nodeValue ); gibt auch nichts zurück.
Kann mir jemand sagen wie ich die Attribute setzen kann, so dass es funktioniert? Es sollen später auch die
attrbute onmouseover/out funktionieren.
Ich bin für jede Antwort dankbar!
p.s. es wäre meiner meinung nach sinnvoll einen Hinweis in Selfhtml anzubringen, dass setAttribute() nur
unter Mozilla korrekt funktioniert.