2016-04-23 2 views
1
TableElement table = new TableElement(); 
document.body.children.add(table); 
table.children.add(new Element.html("<tr><td>test</td></tr>")); 

上記のコードスニペットは、「キャッチされていない不正な状態:要素がありません」というエラーを返します。 Element.html( "")コンストラクタを使用する場合、 "HTMLフラグメントは本体のタグ<のコンテキスト内で発生したかのように解析される"ため、DartLangウェブサイトのAPIドキュメントを読むことができます。したがって、次のように記述する必要があります。ダーツでは、body.html( "")はbodyタグのコンテキスト内で発生する必要がありますか?

new Element.html("<table><tr><td>test</td></tr></table>") 

しかし、「ダーツの実践」を読むと、Chris Buckettはテーブルを作成するときに全く同じ構文を使用します。

何か変わったのですか、何かを誤解していますか?

答えて

0

これはブラウザの「機能」です。 A <tr>要素は単独で存在することはできません。要素が見つかるとHTMLから削除されます。

new Element.html()にドキュメントが

Creates an HTML element from a valid fragment of HTML.

が代わりに使用できると言う

table.append(
     new TableRowElement()..append(new TableCellElement()..text = 'test')); 

DartPad example