2013-04-24 2 views
1

내가 이런 코드 블록이 있습니다, jQuery를 2 부

<span class="main_container"> 
    <span id=".." class=".." position="1"...> </span> 
    <span id=".." class=".." position="2"...> </span> 
    <span id=".." class=".." position="3"...> </span> 
    <span id=".." class=".." position="4"...><img class="remove_it" scr="images/remove.png" /> </span> 
    <span id=".." class=".." position="5"...> </span> 
    <span id=".." class=".." position="6"...> </span> 
</span> 

는 기본적으로 나는 remove_it 이미지를 클릭하면, span 요소를 포함하는 것을 원하는을 (이미지)을 제거하고 다른 모든 것은 span elements 아래에 있어야합니다. 4,5에서이 경우, 요소 및 6

덕분에 내가 좋을 것

답변

2

당신은 .nextAll() 기능을 사용하여이를 달성 할 수보십시오.

HTML

<p id="1">1</p> 
<p id="2">2</p> 
<p id="3">3</p> 
<p id="4">4</p> 
<p id="5">5</p> 
<p id="6"> 
    6 
    <span id="click">Click</span> 
</p> 
<p id="7">7</p> 
<p id="8">8</p> 

$("#click").on("click", function() { var $parent = $(this).parent(); $parent.nextAll().remove(); $parent.remove(); }); 

JSFiddle 자바 스크립트

.

+0

감사합니다. MarcoK. 참으로 트릭입니다. 빠른 반응! – JanvierDesigns

3

:

$('.remove_it').click(function(){ 
    $(this).parent().nextAll('span').add(this.parentNode).remove(); 
}) 

JS Fiddle demo.

또한 추가 속성으로 맞춤 속성을 사용하는 경우 data- 접두어를 붙이면 적어도 HTML5 doctype 내에서 유효하도록 할 수 있습니다.

수정 된 답변을 this에서 this.parentNode으로 수정해야합니다.

+0

이것은 '4th'요소를 제거하지 않고 addBack/andSelf를 추가하여 트릭을 수행합니다. – undefined

+0

@undefined : 네, [피들] (http://jsfiddle.net/davidThomas/wsTnY/)을 작성하면서 그것을 잡았습니다. 감사합니다! =) –

+0

이것은 클릭 요소를 제거하지만 포함 된 SPAN은 제거하지 않습니다. 감사합니다 – JanvierDesigns

-1

사용 부모(), nextAll(), addBack() ...

는이

$('.remove_it').click(function(e){ 
    $(this).parent().nextAll('span').addBack().remove(); 
});