Autor | Zpráva | ||
---|---|---|---|
Velda Profil |
#1 · Zasláno: 14. 12. 2012, 23:52:46
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 |
#3 · Zasláno: 15. 12. 2012, 00:08:16
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í. |
||
Časová prodleva: 12 let
|
0