2009-07-27 15 views
0

Ich schreibe eine einfache Webseite, die eine Tabelle anzeigt. Es ist die rechte Spalte der Tabelle Ich möchte eine Schaltfläche in jeder Zeile hinzufügen, die "Ansicht" sagt. Ich habe eine Funktion geschrieben, die das macht, indem ich zB ein Button-Objekt erzeuge und value = 'view' setze, aber in Firefox und Chrome wird die Schaltfläche ohne Text angezeigt. Weiß jemand warum? Hier ist mein Code:Javascript-Taste funktioniert in IE, nicht Firefox oder Chrom

function addRow(id, sender, message){ 
    var theTable = document.getElementById('messageTable'); 
    var lastRow = theTable.rows.length; 
    var newRow = theTable.insertRow(lastRow); 
    newRow.id = id; 

    var cellLeft = newRow.insertCell(0); 
    var textNode = document.createTextNode(id); 
    cellLeft.appendChild(textNode); 

    var secondCell = newRow.insertCell(1); 
    var textNode2 = document.createTextNode(sender); 
    secondCell.appendChild(textNode2); 

    var messageCell = newRow.insertCell(2); 
    var messageNode = document.createTextNode(message); 
    messageCell.appendChild(messageNode); 

    var viewCell = newRow.insertCell(3); 
    var viewNode = document.createElement('button'); 
    viewNode.value = 'View'; 
    viewNode.onclick = function(){ 
    alert('clicked: ' + id); 
    }; 
    viewCell.appendChild(viewNode); 
} 

Antwort

2

Sie haben seit in FF-Taste zeigt viewNode.innerHTML = ‚View‘ zu tun, was von dem Tag eingewickelt wird, aber nicht der Wert Attribut

0

<button> s sind nicht selbst Schließen wie <input> s, und haben kein value Attribut. Sie haben bereits die Lösung in anderen Teilen des Codes:

viewNode.appendChild(document.createTextNode('View')); 

Sie brauchen auch keine Variablen für Knoten erstellen, die Sie nur einmal verwenden. Sie können Ihren Code an einigen Stellen unter Verwendung des obigen Stils konsolidieren.

Verwandte Themen