0

したがって、私の最終的な目標は、ユーザーが 3 つ以上の単語を入力することです。次に、単語を区切る必要があります。つまり、4 つの単語がある場合、それぞれに単語を含む 4 つの行を作成する必要があります。 insertRow() メソッドが機能しない理由がわかりません。「未定義の insertRow() メソッドを呼び出すことはできません」と表示されます。

私の条件のelseセクションにあるもの:

//build table around input
    var table=document.getElementById('myTable');


    for(i=0; i<2; i++)
    {
    table.insertRow(i);
    table.insertCell(i);}
4

3 に答える 3

1

私が目にする最初の問題は、テーブル DOM オブジェクトを呼び出しているが、テーブルではなく行.insertRow()を呼び出す必要があることです。.insertRow()詳細については、insertCellの MDN を参照してください。いくつかの作業コードの例を次に示します。

function addWords(e) {

    var str = document.getElementById("words").value;
    var words = str.split(/[\s,]/);
    if (words.length && words[0]) {
        //build table around input
        var table = document.getElementById('myTable');

        for (var i = 0; i < words.length; i++) {
            var row = table.insertRow(-1);
            var cell = row.insertCell(-1);
            cell.innerHTML = words[i];
        }
    }
}

そして動作するデモ: http://jsfiddle.net/jfriend00/3g3Qy/

于 2013-11-01T02:50:55.957 に答える
0

Row オブジェクトで insertCell を呼び出す必要があります。

var row = table.insertRow();
row.insertCell();
于 2013-11-01T00:40:35.413 に答える
0

console.log(table)の後に入れvar table=...ます。undefined と出力される場合、問題はスクリプトの実行が早すぎることです。スクリプトをページの一番下に移動するか、DOM がロードされるのを待つ必要があります

于 2013-11-01T01:53:03.087 に答える