2014-07-16 3 views
3

한 div에서 다른 div로 svg를 이동하려고합니다. This stack question 내가 시도한이 솔루션을 제공했습니다. I이 시도되면 한 div에서 다른 div로 svg를 이동하려고 할 때 계층 구조 요청 오류가 발생합니다.

document.getElementById("LightBoxDiv").appendChild(svgId+"V");

는, I는 요청 계층 에러를 받았다. This stack question은 원인 일 수있는 몇 가지 제안했습니다. 나는 그런 것들을 가지고 있다고 말할 수는 없지만 확실하지는 않습니다. 봇 내 div는 본문 요소에 있고 서로 중첩되지 않지만, 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"); 

마지막 줄에 오류가있는 줄이 있습니다. 어떤 오류가 발생했는지 알기나 해? 어떻게 고칠 수 있을까요? 당신은 표준 DOM API를 사용하여 jQuery 코드를 혼합하고

답변

8

--christopher

감사합니다.

기능 appendChild()은 요소 ID가 아니라 DOM 노드를 필요로합니다.

var svg = document.getElementById(svgId+"V"); 
document.getElementById("LightBoxDiv").appendChild(svg); 
+0

내가 그 봤어야 작동 할 것이라는 점을 생각한다. 이것은 완벽하게 작동합니다. –

-1
document.getElementById("LightBoxDiv") == lightboxdiv; 

이유는 이미 변수에 저장된 문서 ID의 요소를 검색하는 사용자의 브라우저 12 번 변형보십시오?

lightboxdiv.style.display = ...; 
lightboxdiv.style.position = ...; 

은 나는 많은

+3

스택 오버플로에 오신 것을 환영합니다! Stack Overflow [모든 게시물이 영어로되어 있어야합니다] (https://stackoverflow.blog/2009/07/non-english-question-policy/). 게시물이나 댓글을 수정하여이 규칙을 준수하거나 삭제하십시오. 영어가 아닌 언어를 허용하는 이러한 언어 관련 스택 오버 플로우 커뮤니티 중 하나에서 다시 게시 할 수 있습니다. [Spanish] (http://es.stackoverflow.com), [Japanese] (http://ja.stackoverflow.com), [ 러시아어] (http://ru.stackoverflow.com), [포르투갈어] (http://pt.stackoverflow.com). – FelixSFD