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.