Nicht Ändern können Sie die innerHTML-einer Tabellen-Zelle
Ich habe Probleme versuchen, zu verwenden .innerHTML, um den text innerhalb der Tabellenzellen. Ich möchte zu ändern, Klick auf den text in der Zelle zu einem link, wenn einer der radio-buttons, die ich erstellt habe, überprüft. Der entsprechende code ist unten:
HTML:
...<td id="header1" style="width: 80px; text-align:center">Column 1</th>...
<div id="testButtons">
<input type="radio" name="on/off" onclick="showLinks()" value="off" id="off" checked="">
<label for="off">Function Off</label>
<input type="radio" name="on/off" onclick="showLinks()" value="on" id="on">
<label for="on">Function On</label>
</div>
Und Javascript:
function showLinks(){
if(document.getElementById("on").checked){
document.getElementById("header1").innerHTML("<a id='headerLink1' href='#' onclick='selectColumn()'>Column 1</a>");
}
}
Wenn ich es Teste, bekomme ich diesen Fehler: Uncaught TypeError: die Eigenschaft 'innerHTML' von Objekt #HTMLTableCellElement ist nicht eine Funktion.
Ich weiß nicht, warum, weil es scheint, wie das funktionieren sollte, zumindest nach MSDN ("Aber, zum ändern des Inhalts einer bestimmten Zelle, Sie können mit innerHTML.").
Jede Hilfe würde geschätzt,
Dank
- Und ist nicht ein _function bedeutet nichts für Sie? Es ist ein Attribut, so benutzen Sie es nicht, als ob es eine Funktion ...
- Haben Sie auch einen Fehler in Ihrem HTML-Code: öffnen Sie ein
<td>
aber schließen Sie es mit</th>
. - Bitte stoppen Sie die Einbettung von "onclick" - tags in Ihrem html. robertnyman.com/2008/11/20/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
innerHTML
ist nicht eine Methode, sondern dem DOM-Attribut (offiziell genanntDOMString
). Das sollten Sie tun:Dieser ist nicht gültig, weil innerHTML ist nicht eine Methode.
Sie sollten setzen Sie seinen Wert wie diese:
Du hast vergessen zu schließen < td >.
Kann es auch Ihr problem sein.
Habe ich das geändert onclick auf onchange und zu beheben einige html-Fehler.
hier die fiddle http://jsfiddle.net/C26MN/