javascript - 在不使用jquery的情况下将g标签添加到svg标签中

标签 javascript html reactjs svg

我有来自此代码的 svg 元素

let chartSVG = ReactDOM.findDOMNode(this.refChart).children[0];

我想在该 ChartSVG 中添加包含 g 标签的水印。

最佳答案

应该使用 createElementNS 进行基本的 DOM 操作和 appendChild() :

const xmlns = "http://www.w3.org/2000/svg";

const rect = document.createElementNS(xmlns, 'rect');
rect.setAttributeNS (null, "width", 50);
rect.setAttributeNS (null, "height", 50);

const g = document.createElementNS(xmlns, 'g');
g.appendChild(rect);

const svg = document.getElementById('svg');
svg.appendChild(g);
<svg id="svg"></svg>

或者,如果您将 SVG 内容作为字符串,则可以使用 DOMParser()并导入片段:

const g = new DOMParser().parseFromString(
   '<g xmlns="http://www.w3.org/2000/svg"><rect width="50" height="50"/></g>',
   'application/xml');

const svg = document.getElementById('svg');
svg.appendChild(svg.ownerDocument.importNode(g.documentElement, true));
<svg id="svg"></svg>

关于javascript - 在不使用jquery的情况下将g标签添加到svg标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55395377/

相关文章:

javascript - 将 bigint 字段中存储的日期转换为正常日期格式

reactjs - 当你运行时,npm start,index.js 是如何被拾起运行的

javascript - ReactJS Hook 错误处理不会捕获错误

javascript - 存储文本输入并显示在页面上

javascript - 无需在 Javascript 中编写 HTML 的 Web 组件

javascript - 为什么在 array.map() 中会多次生成 React-Tooltip?

javascript - 为什么 Math.max(...[]) 在 ES2015 中等于 -Infinity?

javascript - 如何检查 javascript 对象键中的等效项

javascript - 如何将链接从同级列表分别克隆到另一个列表

html - 修复列表项的宽度并 overflow hidden 的文本