Hallo,
<p id='Hello'>
<dl>
<dt>Hello</dt><dd>Du da</dd>
<dt>Hello</dt><dd>Dda</dd>
<dt>Hello</dt><dd>Dda</dd>
<dt>Hello</dt><dd>Dda</dd>
<dt>Hello</dt><dd>Dda</dd>
</dl>
</p>
Du kannst keine dl-Elemente in p-Elemente schachteln. p darf nur http://de.selfhtml.org/html/referenz/elemente.htm#inline_elemente@title=Inline-Elemente und Text enthalten. Der HTML-Parser des Browsers schließt automatisch das p-Element, sobald er den dl-Start-Tag einliest. Der entstehende DOM-Baum sieht so aus (wie du auch z.B. in Firebug oder Web Inspector sehen kann):
body
\_ p
\_ dl
\_ dt
usw.
dl ist demnach kein Kindelement von p.
Die dt-Elemente sind somit auch keine Nachfahrenelement von p.
Also gibt document.getElementById('Hello').getElementsByTagName('dt')
logischerweise eine leere Liste zurück.
Was muss ich tun, damit ich ein richtiges Ergebnis bekomme? (5)
Korrektes HTML schreiben, also die Verschachtelungsregeln von Elementen beachten.
p ist kein Element zur Gruppierung anderer http://de.selfhtml.org/html/referenz/elemente.htm#block_elemente@title=Blockelemente. div, section, article, header, footer, nav, aside usw. sind dafür geeignet. Siehe auch Sectioning.
Mathias