2013-06-26 64 views
1

我一直嘗試使用.innerHTML更改表格單元格內部的文本時遇到問題。當我創建的單選按鈕之一被選中時,我想將單元格中的純文本更改爲鏈接。相關代碼如下:無法更改表格單元格的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>"); 
} 

}

當我測試它,我得到這個錯誤:遺漏的類型錯誤:房產「的innerHTML對象#HTMLTableCellElement不是函數。

我不知道爲什麼,因爲它看起來應該起作用,至少根據MSDN(「但是,要改變特定單元格的內容,您可以使用innerHTML。」)。

任何幫助,將不勝感激,謝謝

+1

而_is不是_function_意味着什麼給你?這是一個屬性,所以不要將它當作函數使用...... – CBroe

+0

您的HTML中也有一個錯誤:您打開一個'​​',但用''關閉它。 –

+1

請停止在您的html中嵌入「onclick」標籤。 http://robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such-a-bad-thing/ – Incognito

回答

4

innerHTML不是方法而是一個DOM屬性(官方稱爲DOMString)。你應該這樣做:

document.getElementById("header1").innerHTML = "<a id='headerLink1' href='#' onclick='selectColumn()'>Column 1</a>"; 
+1

擊敗我9秒。 – casraf

0

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

這是無效的,因爲innerHTML的不是方法。 你應該將其值設置如下:

document.getElementById("header1").innerHTML = some value

0

你忘了關你< TD>。

這也可能是你的問題。

<td id="header1" style="width: 80px; text-align:center">Column 1 </td></th> 
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/