Schmidt: DOM-node mit mögl. wenig Code erzeugen

Beitrag lesen

var $_class = document.createAttribute("class");
$_class.nodeValue = "bla";
$span.setAttributeNode($_class);

Das ist überflüssig, das das Attribut bereits existiert, aber in JS aufgrund Namenskonflikten, className heißt. die anderen Attribute kannst du direkt ansprechen.

Ich verstehe nicht ganz was du mit direkt ansprechen meinst.

So etwa?

$test = document.createElement("span");  
$test.className = "bla";  
$test.id = "erstes";  
$test.style = "color: black;";  

eine eigene Funktion schreiben.

Habe ich gemacht:

function mknode($Type,$AttrStr){  
  
 //Element Erzeugen  
 var $element = document.createElement($Type);  
  
 //Attributsstring in Paare aufteilen  
 var $AttrPaar = $AttrStr.split("&");  
 alert($AttrPaar.length);  
 //für jedes Paar  
 for (var $i = 0; $i < $AttrPaar.length; $i++){  
  //Paare in Attr und Val aufteilen  
  var $AttrVal = $AttrPaar[$i].split("=");  
  //Attr und Val erzeugen  
  var $Attr = document.createAttribute($AttrVal[0]);  
  $Attr.nodeValue = $AttrVal[1];  
  //Attr und Val Element hinzufügen  
  $element.setAttributeNode($Attr);  
 }  
 return($element);  
}  
  
   function add($id){  
    document.getElementById($id).appendChild( mknode('img','src=img/bild.pmg') );  
   }

Folgendes Problem bei der Funktion: Ich führe sie aus, es gibt keine Fehler oder Hinweise, aber es erscheint nichts.
Hab ich etwas übersehen?

Danke