matthias: onClick-Attribut dynamisch hinzufügen

Beitrag lesen

Hallo!

Ich habe folgende JavaScript-Funktionen:

-------------------------------

function addTableRow(cellArray, tableId) {
 var newRow = document.getElementById(tableId).insertRow();

for(i=0; i < cellArray.length; i++) {
  var newCell = document.createElement("td");
  if(cellArray[i] == "sCustomerNumber2" || cellArray[i] == "sArticleNumber2") {
   var newSpan = document.createElement("span");
   newSpan.innerHTML = document.getElementById(cellArray[i]).value;
   newAttribute = document.createAttribute("class");
   newAttribute.nodeValue = "ghostlink";
   newSpan.setAttributeNode(newAttribute);
   newAttribute = document.createAttribute("onClick");
   if(cellArray[i] == "sCustomerNumber2") {
    newAttribute.nodeValue = "document.getElementById('sCustomerNumber').value = '" + document.getElementById(cellArray[i]).value + "'";
   } else if(cellArray[i] == "sArticleNumber2") {
    alert("yes");
    newAttribute.nodeValue = "alert('test')";
   }
   newSpan.setAttributeNode(newAttribute);
   newCell.appendChild(newSpan);
  } else {
   var newCellText = document.createTextNode(document.getElementById(cellArray[i]).value);
   newCell.appendChild(newCellText);
  }
  newRow.appendChild(newCell);
 }
}
function addCustomerRow() {
 var cellArray = Array("sCustomerNumber2","sCustomerMatchcode","sCustomerName","sCustomerZip","sCustomerCity","sCustomerCountry");
 addTableRow(cellArray, "customerTable");
}

-------------------------------

Diese fügen zu einer bestehenden Tabelle neue Zeilen aus einem Formular hinzu, wenn die Funktion addCustomerRow() aufgerufen wird.

Nun würde ich noch gerne, dieser neuen Zeile (newRow) ein onClick-Attribut hinzufügen.

Dazu gäbe es ja zwei möglichkeiten:

newRow.setAttribute("onClick","alert('test')","false");

Oder:

newAttribute = document.createAttribute("onClick");
newAttribute.nodeValue = "alert('test')";
newRow.setAttributeNode(newAttribute);

Jedoch funktioniert keine der beiden Arten im IE.
Habe irgendwo gelesen, dass das erste gehen sollte, tut es aber nicht...

Geht es überhaupt irgendwie?

mfg,
matthias