【问题标题】:Appended childs through appendChild() don't show up通过 appendChild() 附加的孩子不显示
【发布时间】:2019-01-28 11:21:09
【问题描述】:

它正确地获取了所有数据,显示在 console.log() 中,但是当它被附加时,它确实显示在 devTools 中,但不在屏幕上。

我还尝试通过将我从控制台获得的内容粘贴到页面上来将数据放在页面上,看看是否有任何差异,没有,但粘贴的代码显示在屏幕上。

有人知道我该如何解决它吗?

编辑:添加 HTML 并将 x 和 y 值放在我从之前的代码中得到的值中,所以它更加清晰。

var element;
var i = 1;
var x = 799.8;
var y = 620;
element = document.createElement("circle");
element.id = "circle" + (i + 1);
element.setAttribute("cx", x);
element.setAttribute("cy", y);
element.setAttribute("r", "500");
element.setAttribute("fill", "#42b6f4")
document.getElementById("svghead").appendChild(element);

这是 HTML:

<svg id="svghead" style="flex: 1 1 0%; height: 90%; margin-left: 3%; 
    width: 86.8%; border: 1px solid black;"></svg>

【问题讨论】:

  • 显示您的 html,以便我们提供帮助。 element的声明在哪里
  • 这似乎是在某些 SVG 上下文中......?然后你可能(!)需要使用命名空间感知方法来创建元素和设置属性,这取决于你在那里做什么。 stackoverflow.com/questions/3492322/…
  • 元素在上面定义,简单的通过var元素;
  • @DaanT 那些 id 在哪里? document.getElementById("line" + i)

标签: javascript appendchild


【解决方案1】:

请记住,您不能使用简单的 createElement() 创建 svg 元素,您需要使用需要额外参数的 createElementNS()

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

【讨论】:

  • 谢谢,不知道!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多