0

Javascript を使用してテーブルに値を挿入したいと考えています。行と必要なセル、および追加したい要素を追加しますが、値を挿入したいセル.innerHTMLは空のままです。

これが私のコードです。

        var table = document.getElementById(tableID);

        var rowCount = table.rows.length;
        var row = table.insertRow(rowCount);

        var cell1 = row.insertCell(0);
        var element1 = document.createElement("input");
        element1.type = "checkbox";
        element1.name="chkbox[]";
        cell1.appendChild(element1);

        var cell2 = row.insertCell(1);
        cell2.innerHTML = rowCount + 1;

        var cell3 = row.insertCell(2);
        var element2 = document.createElement("input");
        element2.type = "text";
        element2.name = "txtbox[]";
        cell3.appendChild(element2);

cell2空のままです...何が問題なのですか?

4

2 に答える 2

2

何もない。それはうまくいきます:

http://jsfiddle.net/jmorgan123/vB8PN/

Windows 7 の Chrome と FF でテストしたところ、どちらも機能しました。

  • tableID事前に設定していますか?
  • cell1とが設定されている場合cell3、テーブルに 3 列未満の既存の行がありますか? これにより、奇妙な動作が発生する可能性があります。
  • 私が考えることができる他の唯一の可能性は、おそらくcell2どこかですでに定義されているということです。違いはありません(変数が再割り当てされるだけです) が、使用しているブラウザーがわからないため、バグがある可能性があります。窒息してはいけませんが、窒息する可能性があります。
于 2013-01-26T19:36:24.603 に答える
1

これは確かに奇妙な問題です。答えのほとんどがすでに述べたように; よく知られている最新のブラウザでは問題なく動作しています。

FirefoxとChromeを使用していると既に述べているので、ブラウザでも正常に機能しているはずです(最新の最高のバージョンに更新しましたか、それともベータ版を使用していますか?

私が見つけた唯一のものは、Quirksmode.orgのリファレンスです: http ://www.quirksmode.org/dom/w3c_html.html

innerHTMLIE5-9で「ほぼ」サポートされていると記載されています。しかし、これは私がそこで見つけた最も興味深い部分です:

IEおよびKonquerorinnerHTMLでは、テーブルを更新すると正しく機能しません。代わりに純粋なDOMメソッドを使用してこれを解決してください。の発明者による動作のこの説明を参照してください。innerHTML

を使用してテーブルを操作しようとしているため、これも問題に関連している可能性がありますinnerHTML。たぶん、あなたは彼らがリンクしているその説明をチェックして、それがあなたの状況でうまくいくかどうか見るべきです。

于 2013-01-26T20:21:56.240 に答える