Autor Zpráva
timi
Profil *
Zdravím, učím se pracovat s DOM, ale nějak mi nejde tenhle příklad, nevíte pls kde mám chybu?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<script type="text/javascript">

function addError(msg, field){

var id = 'errorOf' + field.id;
newspan = document.createElement('span');
newspan.className = 'error';
newspan.id = id;
newspan.appendChild(document.createTextNode(msg));
var parent = field.parentNode;
var refChild = field.nextSibling;
if (refChild != null) {
parent.insertBefore(newspan, refChild);
}
else {
parent.appendChild(newspan);
}
field.style.backgroundColor = "red";
}

addError("Chyba", document.getElementById('p1'));
</script>
<div id="div1">
Ahoj
</div>
<p id="p1">
P div
</p>
<div id="div2">
Timi
</div>
</body>
</html>

jde o to, že se má vytvořit nový textNode s textem Chyba a background fieldu má být červeně, ale nic se neděje ???
Joker
Profil
timi
Co to hodí za chybu?
Každopádně první věc, ten skript se snaží pracovat s prvkem p1 dřív, než je ten prvek vůbec vytvořený.
timi
Profil *
jo to je přesně ono, díky

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0