1

我有以下 HTML:

<tr>
  <td><!--Component_property:price--></td>
  <td><!--Component_property:size--></td>
  <td><!--Component_property:total--></td>
</tr>

我后来打算将其插入表格中。假设它包含在一个字符串s中。当我这样做时:

var fragment = new DocumentFragment.html(s);
print(fragment.innerHtml);

输出是这样的:

<!--Component_property:price-->
<!--Component_property:size-->
<!--Component_property:total-->

也就是说,所有<td><tr>标签都被剥离。如果标签在标签内或与任何其他标签一起,则不会发生这种情况<table>,这表明 Dart 根本不喜欢片段内的代码无效。

有哪些可能的解决方法?

4

2 回答 2

1

我会推荐使用 dart:html DOM 类来构造你的trtd元素。例如,您可以执行以下操作:

import 'dart:html';

void main() {
  var tr = new TableRowElement();
  tr.children.addAll([
      new TableCellElement()..text = 'x',
      new TableCellElement()..text = 'y']);
  querySelector('#myTable').children.add(tr);
}

这构造了 a tr,添加了几个tds 并将整个东西附加到 a <table>

于 2014-01-06T17:41:15.397 回答
1

我不认为它是验证器。这是构造函数的实现:

HTML 片段被解析为好像它出现在<body>标签的上下文中,这意味着特殊元素(例如<caption>必须在元素范围内解析的<table>元素)将被丢弃。用于createFragment解析上下文 HTML 片段。

我认为您应该执行以下操作:

DocumentFragment df = new Element.table().createFragment(s);

(未测试。)

https://api.dartlang.org/stable/1.16.1/dart-html/Element/Element.html.html

于 2016-05-31T22:58:34.587 回答