美好的一天,
当我注意到这种行为时,我正在玩SVG。
背景:我使用snap.svg加载SVG。我想要替换的节点位于组< g>内。节点
我使用document.getElementById选择了一个SVG节点。然后我得到了父母。然后我用另一组SVG文本替换了父文本的textContent属性。但是,新的SVG不可见。
我在谷歌浏览器中打开了开发人员工具。我在节点树视图中选择了相同的节点。我将节点编辑为HTML,用新的SVG文本替换所有SVG节点。但是,新的SVG不可见。
最后,我选择了根元素,SVG标签本身。然后将SVG标记编辑为HTML,将SVG文本作为最后一个子元素附加。现在新的SVG可见了吗?
我应该注意SVG绘图规则吗?我在其他问题中读过,很难/不可能替换SVG文本,使用node.innerHTML可以替换HTML的保存方式。
答案 0 :(得分:1)
你看过使用Snap.svg提供的Element.innerSVG吗?
此外,Element.innerHTML
也应该适用于svg元素,并且它已经在某些浏览器中有效(例如Opera和Chrome的新版本,请参阅here)。这在DOM Parsing spec。
答案 1 :(得分:0)
您应该尝试使用名称空间感知createElementNS
API创建SVG元素。有关示例,请参阅http://www.kevlindev.com/tutorials/basics/shapes/js_dom/