Autor Zpráva
Velda
Profil
Mám tady ukázku kódu... Gecko a Presto správně vyhodí "3 [HTML Collection]", kdežto Trident a WebKit "3 undefined", což moc nedává smysl, neboť tvrdí, že element má 3 subelementy, přičemž k nim ale nenabízí přístup... Takže teď babo raď...
<!DOCTYPE html>
<html>
<body>
<script>
window.onload = function() {
    test = new DOMParser().parseFromString(text.innerHTML, "text/xml")
    el = test.getElementsByTagName("e")[0].getElementsByTagName("d")[0]
    alert(el.childElementCount + " " + el.children)
}
</script>
<pre id="text"><xml>
<e>
   <d>
      <c>text
      </c>
      <c>text
      </c>
      <c>text
      </c>
   </d>
</e>
</xml>
</pre>
</body></html>
Tori
Profil
el.childNodes https://developer.mozilla.org/en-US/docs/DOM/Node.childNodes
+ pak ještě bude rozdíl v tom, že některé prohlížeče budou mít pod childNodes NodeList o třech prvcích, a jiné NodeList o šesti prvcích (bílé místo okolo prvků se u nich počítá jako textový uzel).

edit: aha, už jsem pochopila, pardon.
Velda
Profil
Tori:
Nechci všechny uzly, ale jenom elementy. Zajímá mě víc, kde je chyba a co udělat správně, aby to šlo...
Jinak by byla lepší možnost el.querySelectorAll("c"), která by ale měla vrátit to samé co children, jenomže querySelectorAll v tom funguje korektně. Lidově řečeno tu něco smrdí.

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: