2011-02-08 5 views
3

더 좋은 방법이 있습니까?jquery selector 성능

$('#test').find('option:selected[value!=""]') 
+0

너무 느린가요? – BoltClock

+0

전혀 쓰지 않고, 이것을 작성하는 더 좋은 방법이 있는지보고 싶습니다. – Hussein

답변

5

당신은 거의에서 조정할 수 있지만, 지글 지글 대신 방법을 사용 할 수 있습니다

$('#test').find('option').filter(function() { 
    return this.selected && this.value.length 
}); 

벤치 마크 : http://jsperf.com/sizzle-vs-methods-filter/12

.filter() 나를 위해 약 70 % 더 빠르다.

+0

와우, 잘 했어. +1 – Hussein

+0

나는 this.selected && this.value.length를 시도했다. Console.log는 값이 아닌 jquery()를 제공한다. – Hussein

+0

@alex : whoops,'return statement'을 잊어 버렸습니다. 업데이트를 참조하십시오. 죄송합니다. – jAndy

0

글쎄, 항상 하나만 선택되므로 내 의견으로는 find() 처리기가 필요하지 않습니다.

난 그냥이처럼 쓸 것이다 :

$('#test option:selected[value!=""]')

나는 아직 테스트하지 않았습니다.

+0

http://jsperf.com을 사용하면 2 % 느린 결과를 얻습니다. 필터를 사용하는 것이 최선의 방법입니다. – Hussein