Permafrost: DOM: erzeugte Kindknoten nochmals dyn. erweitern?

Beitrag lesen

Das glaub ich nicht. Du musst dir natürlich helper Funktionen bauen, die immer wiederkehrende Aufgaben vereinfachen. Aber 5 Zeilen HTML brauchst du keine 120 JS.

Helperfunktion! gutes Stichwort. gibts ein JS- oder sonstiges Framework was sowas bietet? Es gibt da so einen 'DOMAssistant' http://www.domassistant.com/ ich hab den nur flüchtig überflogen, glaube aber nicht daß es das bietet was ich brauche.

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

<p>  
<div class="zitat_foot" id="" >Zugefügt am 30.10.2008 | 0 Kommentare | <a href="">Kommentar schreiben</a></div>  
    <form name="comment" target="" class="commentform">  
     <div class="commentform">Ihr Name: <input id="comment_name" type="text" name="name"> Ihre Emailadresse: <input id="comment_email" type="text" name="email"></div>  
     <input type="hidden" value="id">  
     <div class="commentform">Ihr Kommentar zu diesem Zitat. HTML <b>nicht</b> erlaubt, auch keine Links: </div>  
     <div><textarea cols="70" rows="5" id="comment_text" name="comment"></textarea></div>  
     <div><input type="submit" name="Kommentar senden">&nbsp;&nbsp;<span id="display" style="align:right; ">sdfasdf</span></div>  
    </form>  
</div></p>

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

  
  spaceoben = document.createElement('p');  
  
  var kommentarknoten = document.createElement('form');  
  kommentarknoten.setAttribute('name','kommment');  
  kommentarknoten.setAttribute('class','commentform');  
  
  var k1 = document.createElement('div');  
  k1.setAttribute('class','commentform');  
  
  k1_t1 = document.createTextNode("Ihr Name: ");  
  k1_input1= document.createElement('input');  
  k1_input1.setAttribute('id','comment_name');  
  k1_input1.setAttribute('type','text');  
  k1_input1.setAttribute('name','name');  
  
  k1_t2 = document.createTextNode("Ihre Email: ");  
  k1_input2= document.createElement('input');  
  k1_input2.setAttribute('id','comment_email');  
  k1_input2.setAttribute('type','text');  
  k1_input2.setAttribute('name','email');  
  
  k1.appendChild(k1_t1);  
  k1.appendChild(k1_input1);  
  k1.appendChild(k1_t2);  
  k1.appendChild(k1_input2);  
  
  var k2 = document.createElement('div');  
  k2.setAttribute('class','commentform');  
  k2_t1 = document.createTextNode("Ihr Kommentar zu diesem Zitat. HTML nicht erlaubt, auch keine Links:");  
  k2.appendChild(k2_t1);  
  
  var k3 = document.createElement('div');  
  k3_txt = document.createElement('textarea');  
  k3_txt.setAttribute('cols','70');  
  k3_txt.setAttribute('rows','5');  
  k3_txt.setAttribute('maxlength','45');  
  k3_txt.setAttribute('id','comment_text');  
  k3_txt.setAttribute('name','comment');  
  
  k3.appendChild(k3_txt);  
  
  var k4 = document.createElement('div');  
  var k4_submit = document.createElement('input');  
  k4_submit.setAttribute('type','submit');  
  k4_submit.setAttribute('name','Senden');  
  k4.appendChild(k4_submit);  
  
  kommentarknoten.appendChild(k1);  
  kommentarknoten.appendChild(k2);  
  kommentarknoten.appendChild(k3);  
  kommentarknoten.appendChild(k4);  
  
  spaceoben.appendChild(kommentarknoten);