2012-02-13 3 views
3

특정 조건을 충족하는 경우이 "elems"배열에서 현재 요소를 설정 해제하는 방법은 무엇입니까?반복 내에서 요소를 "설정 해제"하는 방법

var elems = $('input, select, textarea', this); 

elems.each(function(){ 

    if($(this).attr('name') == 'something') { 
    // unset `this` from elems ?? 
    } 

}); 
나는 그것에 CONSOLE.LOG를하고는 키가 표시되지 않습니다

...

+0

"unset"을 정의하십시오. – RedFilter

+0

잘 배열에서 제거, PHP에서 unset 의미 : – Alex

답변

5

당신은에서 true을 반환하는 사람들의 새로운 jQuery를 객체를 구성한 filter() 기능을 사용할 수 있습니다 술어 기능

var elems = $('input, select, textarea', this); 

elems = elems.filter(function(){ 

    if($(this).attr('name') == 'something') { 
    return false; 
    } 

    return true; 

}); 

물론이 될 수 있습니다.

var elems = $('input, select, textarea', this).filter(function(){ 
    if($(this).attr('name') == 'something') { 
    return false; 
    } 

    return true; 
}); 

자세한 내용은 filter() docs을 참조하십시오.

+1

'return $ (this) .attr ('name')! = 'something''로 변경하면 완벽합니다. – gdoron

3
elems.filter(function(){ 
    return $(this).attr('name') !== 'something'; 
}); 
이름이 속성들과 요소의 컬렉션을 줄일 수

은 아니다 "무언가"(또 다른 방법은 말했다 : name 속성 "무언가를"이면 요소가 필터링됩니다)

6

대신 초기 선택 도구에서 다음을 수행해야합니다.

var elems = $('input, select, textarea', this).not('[name="something"]'); 
+0

정답이어야합니다. – MacMac

+0

조건이 내 예제보다 훨씬 복잡합니다 ... – Alex

+0

@Alex GIGO :). – RedFilter

관련 문제