1

再会,

当我注意到这种行为时,我正在玩 SVG。

背景:我正在使用 snap.svg 加载 SVG。我要替换的节点位于组 <g> 节点内。

我使用 document.getElementById 选择了一个 SVG 节点。然后我得到了父母。然后我用另一组 SVG 文本替换了父级的 textContent 属性。但是,新的 SVG 不可见。

我在谷歌浏览器中打开了开发者工具。我在节点树视图中选择了相同的节点。我将节点编辑为 HTML,用新的 SVG 文本替换所有 SVG 节点。但是,新的 SVG 不可见。

最后,我选择了根元素,即 SVG 标签本身。然后将 SVG 标记编辑为 HTML,将 SVG 文本附加为最后一个子元素。现在新的 SVG 可见了吗?

是否有我应该注意的 SVG 绘图规则?我在其他问题中读到,很难/不可能用 node.innerHTML 替换 HTML 的保存方式来替换 SVG 文本。

4

2 回答 2

1

您是否使用过 Snap.svg 提供的 Element.innerSVG

此外,它也Element.innerHTML应该适用于 svg 元素,并且它已经在某些浏览器中有效(例如,较新版本的 Opera 和 Chrome,请参见此处)。这是在DOM Parsing 规范中定义的。

于 2014-01-27T12:20:22.490 回答
0

您应该尝试使用命名空间感知createElementNSAPI 创建 SVG 元素。例如,请参阅http://www.kevlindev.com/tutorials/basics/shapes/js_dom/

于 2014-01-27T10:12:11.030 回答