2011-04-29 2 views
1

이 코드를 작성했지만 작동하지 않습니다.jQuery - 이전 요소에 특정 클래스가 없다면 해당 요소를 제거하십시오.

목표 :

  1. 이전 인 기간은 "여단입니다 웰" ".dont-제거는"다음

  2. 그러나 그 범위를 제거하지되는 경우 경우 이전이다 스팬 "

    : 여단입니다 웰은 .dont-제거 여기 예 ""아무 것도에게

을하지 않는다 ""있는 "

if($(".well-well").prev('span').not('.dont-remove')){ $(".well-well").prev('span').remove(); } 

은 무엇 코드로 받고 메신저는에 "여단입니다 웰"이전하고 난 아무 생각이 왜 모든 스팬을 제거한다는 것이다.

내가 뭘 잘못하고 있니? 당신이 경우 필요하지 않습니다

답변

3

:

$(".well-well").prev('span').not('.dont-remove').remove() 

코드가 무엇인지 말은 다음과 같습니다

if ($(".well-well").prev('span').not('.dont-remove') != null) 
{ 
//remove them all 
} 

는 경우에 대해 걱정하지 마십시오. remove() 함수는 그 내용을 살펴볼 것입니다.

http://jsfiddle.net/sAebR/2/

+1

@JamesKhoury 잘 잘 .. 내가 볼 shouldve 오는 : 그 감사합니다! – Joonas

+0

@Lollero, 문제가 해결되면 승인 표시를 클릭하는 것을 잊지 마십시오. – zneak

+0

@zneak yea, 나는 이상하게 생각합니다. 10 분 이상이 지나면 답을 고칠 수 없다고 생각합니다. – Joonas

1

이 때문에 당신이 요소를 제거하는 방법의입니다. 조건에 맞는 요소를 찾으면 특정 요소가없는 모든 요소가 제거됩니다.

빈 컬렉션에는 remove을 사용하는 것이 매우 적합하므로 요소가 있는지 여부는 걱정할 필요가 없습니다. 대신보십시오 : 귀하의 경우에는

$(".well-well").prev('span').not('.dont-remove').remove(); 
1

을 그것의 jQuery 객체를 반환하기 때문에 모든 스팬을 제거하고 있기 때문에 not 문은 항상 true을 평가하고있다.

jQuery는 콜렉션에서 작동하며 체인 가능합니다. 당신은 단순히 이것으로 그들 모두를 결합 할 수 있습니다 :

$(".well-well").prev('span').not('.dont-remove').remove(); 

행동에 체크 아웃 - http://jsfiddle.net/WFTbF/1/