2013-10-01 3 views
-2

getElementById를 사용하여 페이지의 정보를 복제하려고하는데 표시되지 않습니다. 나는 (폴더 IDX 메인 아래) IDX-서브 헤더에있는 스크립트를 포함 : 나는 다른 ID (IDX-세부 주소)을 가질 수 있도록 복사 된 요소를 설정 사업부를 .Added 한getElementById가 표시되지 않습니다.

<script type="text/javascript"> 
var elem = document.getElementById('IDX-detailsField-address'); 
var newElem = elem.cloneNode(true); 
newElem.setAttribute('IDX-detailsField-address', 'IDX-details-address'); 
var before = elem.nextSibling; 
elem.parentNode.insertBefore(newElem, before);</script> 

을하지만, 나는 어디서나 div의 내용을 보지 못합니다.

<div id="IDX-details-address"></div> 

스크립트는 http://jsfiddle.net/BR72b/에서 작동합니다. 웹 사이트는 http://austinhometeam.com 미리 감사드립니다!

+0

자바 스크립트를 디버깅 해본 적이 있는데 자바 스크립트 오류 또는 이상한 점이 있습니까? –

+0

'newElem'이란 무엇입니까? – tymeJV

+0

'.setAttribute ("id", "what values ​​here")'를 의미하지 않았습니까? 또는 더 쉽게 -'.id = "여기에 어떤 값이든" ' – Ian

답변

1

먼저 setAttribute가 잘못 사용되고 있습니다. setAttribute를 수행 할 때 첫 번째 인수는 속성의 유형이어야하며 두 번째 인수는 해당 속성의 값이어야합니다.

둘째, 참조를 통해 요소를 전달하는 대신 새 요소를 만들어야합니다. 이를 수행하는 가장 좋은 방법은 모든 속성을 저장하는 cloneNode()를 사용하는 것입니다.

내가 제대로이 해결책이 될 것입니다 귀하의 질문을 이해한다면 :

var elem = document.getElementById('IDX-detailsField-address'); 
var newElem = elem.cloneNode(true); 
newElem.setAttribute('id', 'IDX-details-address'); 
var before = elem.nextSibling; 
elem.parentNode.insertBefore(newElem, before); 

는 요소의 ID를 복사된다는 점에 유의 cloneNode를 사용하여. 한 페이지에 ID가 중복되면 하나만 사용할 수 있습니다.

+0

안녕 데이빗, 답장을 보내 주셔서 감사합니다. 스크립트에 cloneNode 요소가 있었지만 여기에 복사하여 붙여 넣을 때 놓쳤습니다. .setAttribute를 'id'로 변경했는데 왜 여전히 나타나지 않는지 이해할 수 없었습니다. – Joyce

관련 문제