1

我在尝试使用 .innerHTML 更改表格单元格内的文本时遇到了麻烦。当我创建的单选按钮之一被选中时,我想将单元格中的纯文本更改为链接。相关代码如下:

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>

和 Javascript:

function showLinks(){ 
if(document.getElementById("on").checked){
    document.getElementById("header1").innerHTML("<a id='headerLink1' href='#' onclick='selectColumn()'>Column 1</a>");
}

}

当我测试它时,我得到这个错误: Uncaught TypeError: Property 'innerHTML' of object #HTMLTableCellElement is not a function。

我不知道为什么,因为这似乎应该有效,至少根据MSDN(“但是,要更改特定单元格的内容,您可以使用 innerHTML。”)。

任何帮助将不胜感激,谢谢

4

4 回答 4

4

innerHTML不是方法,而是 DOM 属性(官方称为 a DOMString)。你应该做:

document.getElementById("header1").innerHTML = "<a id='headerLink1' href='#' onclick='selectColumn()'>Column 1</a>";
于 2013-06-26T13:58:30.123 回答
1

你忘了关闭你的<td>。

也可能是你的问题。

<td id="header1" style="width: 80px; text-align:center">Column 1 </td></th>
于 2013-06-26T14:05:43.697 回答
0

我已将 onclick 更改为 onchange 并修复了一些 html 错误。

<table>
<td id="header1" style="width: 80px; text-align:center">Column 1</td>
</table>

 <div id="testButtons">
     <input type="radio" name="onoff" onchange="showLinks()" value="off" id="off" checked="" />
            <label for="off">Function Off</label> 
     <input type="radio" name="onoff" onchange="showLinks()" value="on" id="on" />
            <label for="on">Function On</label>
 </div>

<script>
function showLinks(){ 
   if(document.getElementById("on").checked){
        document.getElementById("header1").innerHTML ="<a id='headerLink1' href='#' onclick='selectColumn()'>Column 1</a>";
    }
}
</script>

这里的小提琴http://jsfiddle.net/C26MN/

于 2013-06-26T14:13:40.953 回答
0

document.getElementById("header1").innerHTML(" href='#' onclick='selectColumn()'>Column 1");

这是无效的,因为 innerHTML 不是一种方法。您应该像这样设置它的值:

document.getElementById("header1").innerHTML =一些值

于 2013-06-26T14:03:31.720 回答