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: オブジェクト #HTMLTableCellElement のプロパティ 'innerHTML' は関数ではありません。

少なくとも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 に答える