javascript - 创建新的 SVGNumber 或其他 SVG 元素

标签 javascript svg

我正在尝试动态创建 SVGNumber 对象并将其附加到 SVGFEColorMatrixElement:

var feColorMatrix = document.createElementNS("http://www.w3.org/2000/svg", "feColorMatrix");
var numberList = this.feColorMatrix.values.baseVal;
for(var i = 0; i < 20; i++){
    // var number = document.createElementNS("http://www.w3.org/2000/svg", "SVGNumber"); // doesn't work either
    // number.value = 0;
    var number = {value:0};
    numberList.appendItem(number);
}

由于 SVGNumber 是接口(interface),根据我的理解,这应该可以正常工作,但我收到此错误消息:

未捕获类型错误:无法在“SVGNumberList”上执行“appendItem”:参数 1 不是“SVGNumber”类型

创建 SVGNumber、SVGAnimatedNumber 或 SVGNumberList 等对象的正确方法是什么?

SVG编号接口(interface):https://developer.mozilla.org/en/docs/Web/API/SVGNumber

最佳答案

<svg> 上有一个函数可用于创建 SVGNumber 对象的元素。它的名字叫createSVGNumber

var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");

var feColorMatrix = document.createElementNS("http://www.w3.org/2000/svg", "feColorMatrix");
var numberList = this.feColorMatrix.values.baseVal;
for(var i = 0; i < 20; i++) {
  var number = svg.createSVGNumber();
  number.value = 0;
  numberList.appendItem(number);
}

关于javascript - 创建新的 SVGNumber 或其他 SVG 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38585839/

相关文章:

javascript - 在导航元素上显示 Div 单击并隐藏其他 Div

javascript - 如何 "hide"ommit Babel/Webpack/Plugins配置文件?

java - 在java中解码SVG图像文件(编码为base64)

svg - 在 SVG 路径中对 SVG 进行动画处理

javascript - 使用 safari 在 Canvas 中绘制包含 html 的 svg

javascript - 包含基于链接的信息的新页面

javascript - Backbone - 集合中所有模型的聚合器事件触发

javascript - 在悬停时显示,使用弹出 div 中包含的按钮隐藏

html - 仅使用 html 和 css 为 SVG 元素创建悬停工具提示

javascript - D3更新、输入和删除