2011-03-03 2 views
1

링크를 클릭하면 링크가 포함 된 div (및 그 안의 다른 모든 요소)를 어떻게 제거합니까?특정 링크를 클릭하면 외부 요소와 외부 요소 내부의 모든 요소를 ​​제거하는 방법은 무엇입니까?

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

같은 클래스의 div 컨테이너가 3 개 있습니다. 사용자가 링크를 클릭하면 컨테이너 안의 모든 것을 제거합니다. 위의 링크 중 하나를 클릭하면 다음과 같이 표시됩니다.

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

<div class="container"> 
    <div class="inner-container">Content</div> 
    <a class="remove-outer" href="">Link</a> 
</div> 

나는 꽤 새로운 페이지입니다. 고유 ID가있는 요소를 제거하는 방법 만 알고 있습니다. 사용자가 링크 중 하나를 클릭하면 모든 컨테이너가 사라지기 때문에 여기서 지식을 적용 할 수 없습니다. 이 같은

답변

2

.

$(function(){ 
    $("a.remove-outer").click(function(){ 
     $(this).parent().remove(); 
    }); 
}); 

편집 : 새로 추가 한 요소에도 기능이 필요한 경우 live를 사용합니다.

$(function(){ 
    $("a.remove-outer").live("click", function(){ 
     $(this).parent().remove(); 
    }); 
}); 
+0

안녕하세요, 페이지가 이미로드되었을 때 상위 요소가 존재하지만 JQuery를 사용하여 새 요소를 추가 할 때 부모 요소가 존재하고이 요소를 사용하여 제거하려고하면 작동합니다. – Kelp

+0

@Kelp, 업데이트 된 코드를 확인하십시오. –

+0

그건 잘 됐네, 고마워. – Kelp

0

뭔가를해야한다 :이 그것을해야

$('a.remove-outer').click(function(e) { 
    e.preventDefault(); 

    $(this).closest('.container').remove(); // find the nearest ancestor element with the class container and remove it 
}); 
+1

왜 $ (this) .closest ('. container')입니까? 왜 그냥 $ (this) .parent(). remove()? –

+0

@Brian 나는 무엇이든지간에 DOM이 변경되면 깨지기 쉽기 때문에 일반적으로'closest'를 사용하는 것을 선호합니다. – lonesomeday

관련 문제