Kai345: DOM: erzeugte Kindknoten nochmals dyn. erweitern?

Beitrag lesen

[latex]Mae  govannen![/latex]

ok 120 Zeilen war übertrieben aber dennoch... kann ja mal ne Kostprobe geben. dieser HTMl Code:

[...]

Ergibt - mehr oder weniger - diesen DOM Code (nicht auf Feinheiten achten es geht hier nur um die Größenverhältnisse)

[...]

Ja, das hat mich auch immer gestört. Deshalb habe ich mir einfach eine Funktion geschrieben, die mir die Arbeit etwas abnimmt. Ich definiere das HTML in einer verschachtelten Objekt-Literal-Schreibweise[1] und die ganze Verschachtelei etc. macht dann die Funktion für mich. Leider habe ich diese funktion vor längerer Zeit geschrieben und schon ewig nichts mehr daran gemacht (sie läßt bisher einige Sonderfälle aus (IE und input z.B.) , hat eine zu komplizierte Syntax und ist leider aufgrund meines damals noch sehr beschränkten Kenntnis-Standes in Javascript weder schön, effektiv noch schnell, weshalb ich sie an dieser Stelle auch nicht anpreisen will. Aber wie das so ist: Sie funktioniert halbwegs (mit diversen Sonderfall-Einschränkungen, die ich bisher halt auf altgediente Art erzeuge) und man hat irgendwie immer was besseres zu tun ... :(

Was ich sagen will: Mach dir Gedanken, _was_ du immer wieder _wie_ machen musst, um bestimmte Elemente zu erzeugen und zu verschachteln, überlege dir eine schöne Struktur, wie du es definierst, dann kannst du durchaus selber eine kleine Helferfunktion schreiben, die dir zumindest einen Teil der Arbeit abnimmt.

Cü,

Kai

[1] Zum Beispiel erzeugt das hier:

  
var el = {  
  element: "div",  
  child: [  
  {  
    element: a,  
    href="#"  
    child: "X"  
  },  
  {  
    text: "foobar"  
  },  
  {  
    element: a,  
    href: "/",  
    child: "Y"  
  }]  
};

mit meiner Funktion den Code

  
<div>  
  <a href="#">X</a>  
  foobar  
  <a href="/">Y</a>  
</div>  

Bei dieser Codemenge lohnt es sich natürlich noch nicht, aber das Prinzip sollte klar werden.

--
Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
Mein Selfhtml-Kram