2014-10-31 1 views
1

비슷한 질문이 많이 있지만 정확한 문제를 찾을 수 없다는 것을 알고 있습니다. 나는 내 <select>selector을 가지고 있지 않다. 양식 필드를 반복하므로 $(this)을 사용하여 select에만 액세스 할 수 있습니다.

jQuery의 '.each'기능을 사용하여이 select의 옵션을 어떻게 반복 할 수 있습니까?

내가 체인 그것을 시도했지만이 작동하지 않습니다

$(this).$('option').each(function(){ 
    if (this.value == val) { 
    // do something 
    } 
}); 

참고 :$(this)select 나의 form입니다.

+0

그리고 무슨 일이 about :'$ (this) .find ('option : selected'). doSomething(). orWhatever();'. –

답변

1

당신의 this 당신은 또한 당신이 jQuery 객체에 래핑 할 수는 .options 특성에 액세스 할 수있는 select 요소에 대한 참조이기 때문에 :

$(this.options).each(function(i, option){ 
    if (this.value == val) { 
    // do something 
    } 
}); 

http://jsfiddle.net/x57d8msL/

+0

와우, 이것도 좋은 해결책입니다. 그래서'this.options'는 네이티브 javascript라고 가정합니다. 이 답변은 jQuery의'find()'함수를 필요로하지 않기 때문에 더 잘 수행되어야한다고 생각합니다 - 아니면 틀린가요? –

+0

아마도 나노초 정도의 속도로 조금 더 빨라지므로 최적화라고 생각하지 마십시오. 그렇습니다. select.options는 select 요소의 옵션 목록에 액세스하는 고유 한 방법입니다. – pawel

+0

위대한, 감사합니다! Bhushan Kawadkar에게 유감이지만, 나는 당신의 대답을 더 좋아했습니다. 아주 간단한 네이티브 javascript를 사용하여 새로운 것을 배웠습니다. –

3

시도해보십시오. .find()을 사용하면 option을 선택할 수 있습니다.

참고 : - this.value은 루프 내부의 현재 옵션 값을 나타냅니다.

$(this).find('option').each(function(){ 
    if (this.value == val) { 
    // do something 
    } 
}); 
+0

아니요,'$ (this)'가 내 '선택'자체입니다. –

+0

내 업데이트 된 답변을 참조하십시오. –

+0

tyvm,이 작동하는 것 같습니다. 나는 간단한 방법이 있어야한다는 것을 알았고 ** 단지 ** 자신을 찾을 수 없었다 :) –

-1
$.each($('select'), function (key, val){ 
    console.log($(val)); 
}); 
관련 문제