我试图将一个svg从一个div移动到另一个div。 This stack question提供了我尝试过的解决方案。
document.getElementById("LightBoxDiv").appendChild(svgId+"V");
当我尝试这个时,我收到了一个层次结构请求错误。 This stack question提出了可能是原因的几件事。我不知道我有这些东西,但我不确定。 Bot我的div在body元素中并没有嵌套在另一个中,然而,在使用javascript动态创建之前,其中一个div只有几行。这是我用来创建div的脚本。
var lightboxdiv = document.createElement('div');
lightboxdiv.id = "LightBoxDiv";
document.body.appendChild(lightboxdiv);
document.getElementById("LightBoxDiv").style.display="block";
document.getElementById("LightBoxDiv").style.position="fixed";
document.getElementById("LightBoxDiv").style.overflow="hidden";
document.getElementById("LightBoxDiv").style.padding="5%";
document.getElementById("LightBoxDiv").style.top=0;
document.getElementById("LightBoxDiv").style.left=0;
document.getElementById("LightBoxDiv").style.width="100%";
document.getElementById("LightBoxDiv").style.height="100%";
document.getElementById("LightBoxDiv").style.background="white";
document.getElementById("LightBoxDiv").style.zIndex="1001";
document.getElementById("LightBoxDiv").setAttribute("class","dotouch");
document.getElementById("LightBoxDiv").appendChild(svgId+"V");
最后一行是抛出错误的那一行。知道我做了什么导致错误吗?我该怎么办呢?
谢谢, - christopher
答案 0 :(得分:10)
您正在将jQuery代码与标准DOM API混合使用。
函数appendChild()
需要DOM节点,而不是元素ID。尝试
var svg = document.getElementById(svgId+"V");
document.getElementById("LightBoxDiv").appendChild(svg);
答案 1 :(得分:0)
我遇到了同样的错误,只是我没有使用JQuery。 我发现的问题是,我试图从一个Div移到另一个Div的元素是不可见的(即,其样式显示='none')。
首先删除此样式,然后附加它,为我解决了这个问题。
答案 2 :(得分:-1)
document.getElementById("LightBoxDiv") == lightboxdiv;
为什么要用户浏览器12次来搜索已存储在变量中的文档ID中的元素?
lightboxdiv.style.display = ...;
lightboxdiv.style.position = ...;
我认为它会起作用