jQuery로 DOM 요소를 파괴하는 방법?


141

jQuery 객체가이라고 가정합니다 $target.

답변:


194

$target.remove();당신을 위해 무엇을 찾고 있는지?

https://api.jquery.com/remove/


75
물론 이것은 보이는 문서에서만 제거합니다. $ target 변수 자체와 같이 JavaScript에서 노드에 대한 다른 참조가있는 경우 객체는 현재 가비지 수집기를 이스케이프합니다. 당신이 그것을 파괴하고 싶다면 당신은 그것에 대한 모든 언급을 잃어야합니다. 왜 DOM 요소를 파괴하고 싶은지 잘 모르겠습니다. 아마도 당신은 단지 $ target을 싫어할 것입니다. 불쌍한 $ target, 그것은 당신에게 무엇을 했습니까?
bobince

52
$ target은 혼자있을 때 친절하지만 10 만 명의 복제 된 친구 주변에있을 때 불쾌합니다.
Sebastián Grignoli 2016 년

2
.empty()비슷한 효과가?
Saurabh Nanda

3
@SaurabhNanda-비어 있으면 개체의 내용이 제거되지만 개체 자체는 제거되지 않습니다.
Luke

46

대상 을 완전히 파괴 하려면 몇 가지 옵션이 있습니다. 먼저 위에서 설명한대로 DOM에서 객체를 제거 할 수 있습니다.

console.log($target);   // jQuery object
$target.remove();       // remove target from the DOM
console.log($target);   // $target still exists

옵션 1- 대상을 빈 jQuery 객체 (jQuery 1.4 이상)로 바꿉니다.

$target = $();
console.log($target);   // empty jQuery object

옵션 2- 또는 속성을 완전히 삭제하십시오 (다른 곳에서 참조하면 오류가 발생 함)

delete $target;
console.log($target);   // error: $target is not defined

추가 정보 : 빈 jQuery 객체대한 정보삭제에 대한 정보


3
delete $target작동하지 않는 이유 : perfectionkills.com/understanding-delete/#misconceptions$target=null작동 하지 않습니까?
LeeGee

@ LeeGee-jQuery 객체에서 delete가 작동하지 않는 이유를 설명하기 위해 게시물을 요약 해 주시겠습니까? 마지막에 console.log ($ target)를 볼 때 왜 작동하는 것처럼 보입니까? 감사합니다.
Luke

인용 한 기사보다 더 잘 설명 할 수는 없습니다.
LeeGee

레코드의 경우 콘솔에서 eval 범위의 JS를 평가하므로 삭제가 허용되므로 콘솔에서 작동합니다. "자연"범위의 변수는 삭제할 수 없습니다. $target=null대신 사용하십시오 . 더 빠르며 내부 브라우저 최적화에 지장을주지 않습니다.
bendman

1
삭제해도됩니다. 그것은 단지 JS 엔진에 의해 블록이 최적화되지 않음을 의미합니다. 대부분의 경우 이는 전적으로 관련이 없습니다. 문제가되면 삭제를 사용하는 방법을 찾으십시오. 전에는 아니었다.
Charlie Martin

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.