在Dart中,element.html(“”)是否出现在body标签的上下文中?

时间:2016-04-23 11:33:47

标签: dart dart-html

TableElement table = new TableElement();
document.body.children.add(table);
table.children.add(new Element.html("<tr><td>test</td></tr>"));

上面的代码片段返回错误:“Uncaught Bad state:No element”。在DartLang网站上阅读API文档,这是因为在使用Element.html(“”)构造函数时,“HTML片段被解析为好像它发生在&lt; body&gt;标记的上下文中”。因此,我们需要写:

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

然而,阅读“dart in action”Chris Buckett在构建表时使用了完全相同的语法。

有什么改变或者我误解了什么吗?

1 个答案:

答案 0 :(得分:0)

这是一个浏览器“功能”。 <tr>元素本身不能存在,只有在找到时才从HTML中删除。

new Element.html()的文档说

  

从HTML的有效片段创建HTML元素。

或者你可以使用

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

DartPad example