JavaScript の学習を始めたばかりで、テーブルにセルを挿入するのに問題があります。3 つのセルからなる 1 行のテーブルがあり、クリックしたセルの左側に新しいセルを挿入したいのですが、[挿入] ボタンをクリックした後でのみです。
テーブルの HTML は次のとおりです。
<table border="1" id="table1">
<tr id="row1">
<td id="c1" onclick="c1()">Cell 1</td>
<td id="c2" onclick="c2()">Cell 2</td>
<td id="c3" onclick="c3()">Cell 3</td>
</tr>
</table>
<br>
<button onclick="insert()">Insert</button>
セル 2 で行ったように手動でセル インデックスを指定すると問題なく動作しますが、セル 3 で行っているようにセルのインデックスを検出しようとすると、インデックス 0 に新しいセルが挿入されるだけです。
JavaScript:
var cell1=false,
cell2=false,
cell3=false,
x;
function c1() {
cell1=true;
}
function c2() {
cell2=true;
}
function c3() {
cell3=true;
x=getElementById("c3").cellIndex;
}
function insert() {
if (cell1==true) {
// Not used yet
}
if (cell2==true) {
document.getElementById("table1").rows[0].insertCell(1).innerHTML="New1";
}
if (cell3==true) {
document.getElementById("table1").rows[0].insertCell(x).innerHTML="New3";
}
cell1=false;
cell2=false;
cell3=false;
};
c3()
関数と関数の両方でいくつかのバリアントを試しましたinsert()
が、毎回まったく挿入されないか、インデックス 0 に挿入されます。
ちなみに、純粋な JavaScript でこれをやろうとしています。