2012-04-03 2 views
7

querySelector에 해당하는 jQuery는 무엇입니까? jQuery를 첫 번째 경기를 찾은 후 정지 똑똑, 위의 표현으로jQuery에 해당하는 querySelector

$(selectorString)[0] 

: 내가 지금까지 찾은 유일한 방법은 모든 후 첫 번째 선택을 선택을 선택하는 것입니다?

업데이트 : @Mutnowski는 eq()와 첫 번째를 사용하여 제안했지만 jQuery 문서를 읽은 후에는 두 가지 방법이 동일한 단점을 갖고있는 것처럼 보입니다. jQuery는 먼저 모든 일치 항목을 가져온 다음 첫 번째 요소 만 필터링합니다.

+0

메모를 작성할 수 있습니다, 그것은 jQuery를 구현합니다. 그러므로 최상의 성능을 얻으려면'$ ("td : eq (2)") 대신에'$ ("td"). eq (2)'를 쓰는 것이 낫다.' – Killy

답변

1

) 인덱스

$("td").eq(2) 
$("td:eq(2)") 

http://api.jquery.com/eq/

을 얻으려면 그래서 그것은 jQuery에 querySelector가 없다는 것입니다. 내가 본 다른 n 개의 라이브러리.

해결 방법은 일치하는 요소 (querySelectorAll에 해당)를 모두 선택하고 첫 번째 요소를 필터링하는 것입니다. 이것은 [0] (html 노드를 반환)을 사용하거나 @Mutnowski에서 eq (0) 또는 첫 번째 (jQuery 객체 반환)와 같이 제안 할 수 있습니다.

6

당신은 당신이 (좁은 방 바로 처음 사용을 원하는 경우에 .EQ (인덱스)

$("tr").first() 
$("tr:first") 

http://api.jquery.com/first/

+0

Thx. 여전히 jQuery는 먼저 모든 일치 항목을 선택하고 필터를 적용합니다. 옳은? – Christophe

+0

@Christophe : 맞습니다. – BoltClock

0

는 간단한 플러그인 (compatibility notes) "EQ"는 CSS를 선택 아니라고

$.fn.firstMatch = function(sel) { 
    var len = this.length; 
    if (!len) return this; 
    for(var i = 0; i < len; i++){ 
     var match = this[i].querySelector(sel); 
     if (match) return $(match); 
    } 
    return $(); 
}