molily: Anzahl der von getElementsByTagName immer null?

Beitrag lesen

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