2010-07-28 4 views
11

HTML 요소를 다른 요소로 이동하는 방법. 요소의 위치를 ​​움직이는 것은 아닙니다. 이 HTML 코드를 고려 : 나는 이동할HTML 요소 이동 방법

<div id="target"></div> 
<span id="to_be_moved"></span> 

를 지금 "to_be_moved"에서 "대상"그래서 "대상"아이가 "를 to_be_moved". 따라서 결과는 다음과 같아야합니다.

Google에서 (특히 프로토 타입 프레임 워크를 사용하여) 검색했지만 원하는 것은 이동 위치가 아닙니다. 전에 고마워.

답변

19
document.getElementById('target').appendChild( document.getElementById('to_be_moved')) 
+0

"to_be_moved"는 어떨까요? 아직도 원래 위치에 있습니까? – iroel

+0

그렇게해서는 안됩니다. 시도 해봐? –

+2

어? 요소의 부모가 변경되어 "이동"됩니다. 노드는 이제 DOM 트리의 다른 위치에 있으므로 "제거"되지 않습니다. –

0

네이티브 DOM 요소로 작업 가정하면, 자바 스크립트 방법 .appendChild 필요에 맞게됩니다. 기본 자바 스크립트에서

document.getElementByID는 ... 더 읽기 방법을, 아마도 DOM 요소를 얻기에 가장 좋은, 그래서 ...

var target = document.getElementById('target') 
document.getElementById('to_be_moved').appendChild(target) 
6
$("target").insert($("to_be_moved").remove()); 

또는

var moveIt = $("to_be_moved").remove(); 
$("target").insert(moveIt); 
+0

질문이 있습니다. "to_be_moved"속성, 값 등은 어떻습니까? 그것은 이동 전과 동일합니다 (예 : clone native DOM method)? – iroel

+0

@iroel 예, ['remove'] (http://www.prototypejs.org/api/element/remove) 메서드는 요소를 DOM 밖으로 가져 와서 반환합니다. 그것은 복제품이 아니며, 그것은 * 요소입니다. –

+1

당신은'.remove()'를 사용할 필요조차 없습니다. 새 위치에 삽입하면됩니다. – Josh