ホームページ  >  記事  >  ウェブフロントエンド  >  IE での読み取り専用 innerHTML_javascript テクニック

IE での読み取り専用 innerHTML_javascript テクニック

WBOY
WBOYオリジナル
2016-05-16 18:47:561034ブラウズ

今日何か作業中に問題が発生しました。最初にテーブルを定義しました:

コード コードは次のとおりです:




< /tbody>


コードをコピーします。

コードは次のとおりです。 gt;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
111222}

これは FireFox で行う方法です。問題はありませんが、IE の下に置くと機能しません。同僚に検索してもらったところ、COL、COLGROUP、FRAMESET、HTML、STYLE、TABLE、TBODY が見つかりました。 、TFOOT、THEAD、TITLE、TR は、IE における COL、COLGROUP、FRAMESET、HTML、TFOOT、THEAD、TITLE、TR の要素です。 innerHTML プロパティは読み取り専用であり、直接操作できません。しかし、解決策はありません。上記のコードは次のように変更できます。




コードは次のとおりです:


for(var i in events){
... var filetable = document.getElementById('filelist'); var tr = document .createElement(' tr'); var td1 = document.createElement('td'); td1.innerHTML = '111'; td2.innerHTML = '222'; tr.appendChild(td2);

はい。まず DOM の createElement メソッドを使用して tr と td を作成し、次に td の innerHTML で対応する操作を実行し、最後に appendChild メソッドを使用して作成された要素を DOM ツリーに追加します。これにより、IE で正常に実行できるようになります。テーブルに tbody がない場合は、次のような場合に注意してください:

現時点では、appendChild メソッドは使用できません。 IE6 のテーブル要素は appendChild メソッドをサポートしていないため (IE8 はすでにサポートしているようです)。
インターネット上の何人かは、insertRow() などのメソッドを使用してこれを行うことを提案していますが、この方法はさまざまなブラウザとの互換性にも問題があります (FireFox では insertRow(-1) を使用する必要があります)。役に立たない。
ところで、私はこれまで意識的に JS の情報をたくさん読んできましたが、それでも実践を通じて真実を学びました。今はただ急いでいるだけなので、冷静になることを学んでいます。