javascriptを使用してtbodyのないテーブルを作成するcreateElement/appendChildは、tbodyをFirebugに追加しませんが、innerHTMLを使用してそれを行います。どうして?手動でtbodyを追加する必要がありますか?createElement/appendChildで自動化されたtbodyがありませんか?
答えて
DOM作成メソッドを使用する場合は、作成した方法で構造を使用する必要があると想定する必要があります。
異なるブラウザで同じ構造を使用する場合は、JavaScriptがHTMLを解析している場合でも、手動で追加する必要があります。その点でブラウザが同じように動作しない可能性があるため、ブラウザに依存しないでください。
Here's an example Firefoxで実行できます。
これは、が無効です。マークアップです。
<p>
<div>original</div>
</p>
<div>
がHTMLを解析したとき...それはこのようにレンダリング残し、<p>
から追い出さ
<p></p>
<div>original</div>
<p></p>
しかし、我々はDOMメソッドと同じ構造を作成した場合、Firefoxは」doesnのを取得します訂正はしないでください。
var p = document.createElement('p');
p.appendChild(document.createElement('div'))
.appendChild(document.createTextNode('new'));
document.body.appendChild(p);
だから、結果のDOMは今これです...
<p></p>
<div>original</div>
<p></p>
<p>
<div>new</div>
</p>
だから、あなたも完全に無効な構造の場合には、それはあなたが見たいの修正を行わないことがわかりますHTMLを解析するとき。
最終的には、ブラウザ間で同じになるという保証はないので、一般的なブラウザの調整や訂正には依存しません。
適切に構造化された有効なHTMLを使用すると、問題を回避できます。
ヒントと例をありがとう!あなたが作成した方法でDOMの作成方法が構造を表示した場合、手動で作成されたHTMLテーブルは、訂正や他の方法を使わずに作成する方法を尊重する必要があります。 – baptx
@baptx:HTMLを使用すると、実際にDOM構造を手動で作成しているわけではありません。あなたは*マークアップ*を使ってそれを作成しています。これは解析してDOM構造に解釈する必要があります。私はそれがブラウザの修正につながるその解釈だと確信しています。 DOMメソッドを使用してDOM構造を構築する場合、解釈は行われません。それは、開発者だけが明示的にこのノードをそのノードに入れていることを示しているので、メソッドはあなたがそれを伝えます。 –
... * DOCTYPE *は、*マークアップ*の解釈においてのみ役割を果たすと考えられますが、メソッドは* DOCTYPE *を実行しようとしません。 –
tbody要素の開始および終了タグはオプションであるため、 DOMノードを直接操作することによって、タグ挿入をバイパスします。
手動でtbodyを追加する必要がありますか?
これはやや主観的です。
ありがとう、これはオプションですが、このノードの使い方によって標準が尊重されていません – baptx
- 1. 自動化はあまりにも自動化されているため、導入はいかがですか?
- 2. sql exception、パラメータ化されたクエリがありません
- 3. ADOエラー:自動化エラー - 指定されたモジュールが見つかりませんでした
- 4. TortoiseSVNフォルダが自動更新されませんでした
- 5. divの高さは自動ではありません
- 6. tbodyクリックが許可されていません
- 7. 自動変数付きQtCreatorで「オートコンプリート」サポートがありません
- 8. JOGLで自動解放プールがありません
- 9. 自動化されたプロパティ?
- 10. divの高さが自動的にリサイズされませんか?
- 11. 自動コミットで何が起こり、ロールバックされることはありませんか?
- 12. Pythonは標準化された言語ではありませんか?
- 13. Tbodyを自動的に作成しましたか?
- 14. トランザクションはPostgreSQL 9.5.2で自動的にコミットされますが、変更するオプションはありませんか?
- 15. iOS4ではピクセル化されていますが、iOS5ではありません
- 16. 手動でトリガされたペーストイベントには、.originalEventプロパティがありません。
- 17. 自動投稿フォームにはフォーム変数がありません
- 18. NSViewの自動サイズ設定プロパティがありません
- 19. OrientDB - 自動SBツリーインデックスに値がありません
- 20. Vimの自動インデントのインデントが正しくありません
- 21. TSQLQuery - クエリから返されたカーソルがありません
- 22. SQL Server 2016 RC1に常に暗号化されたキーがありません
- 23. グループ化されたUITableViewのセル間の間隔がありません
- 24. シリアル化されたクラスのXMLファイルにフィールドデータがありません
- 25. Amazon ElasticCache自動検出 - クライアントが初期化されていません
- 26. Playframework:JPAコンテキストが初期化されていません。 JPAエンティティマネージャに自動的に
- 27. Newtonsoft.JSONで動的JSONを解析すると、逆シリアル化されたオブジェクトに配列がありません
- 28. コード化されたコードでバックグラウンドで開くコントロールが見つかりません
- 29. 指定されたモジュールは見つかりませんでしたが、dll参照はありません
- 30. nvarcharが認識されたカーソルオプションではありません
私はあなたが 'table.tBodies'を使用できるように手動でtbodyを追加することをお勧めします – Raynos