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在构建表时使用了完全相同的语法。
有什么改变或者我误解了什么吗?
答案 0 :(得分:0)
这是一个浏览器“功能”。 <tr>
元素本身不能存在,只有在找到时才从HTML中删除。
new Element.html()
的文档说
从HTML的有效片段创建HTML元素。
或者你可以使用
table.append(
new TableRowElement()..append(new TableCellElement()..text = 'test'));