2012-10-24 11 views
3

selectors을 사용하여 다음 순회를 작성하는 더 좋은 방법이 있습니까?즉각적인 그랜드 아이들을위한 jQuery 선택자

$table.children('tbody').children('tr'); 

더 많은 자손 (테이블 안의 테이블)을 사용하지 않고 즉석의 그랜드 아이들을 필터링하고 싶습니다.

jQuery 설명서에서 $table.find('> tbody > tr')은 사용되지 않음으로 표시되었습니다.

업데이트 위의 방법보다 빠르거나 같은 선택기를 찾고 있습니다.

답변

2

I는 다음을 제안 할 수있는 다른 선택으로는. 게다가 단순한 DOM el.childNodes 반복보다 더 빠른 것이 있다면 children() 메서드로 표현됩니다.

$table.find("tr:not(tr tr)")​​​​​​​​; 

DEMO : OP가 사용하고 무엇http://jsfiddle.net/mZppb/

+0

이것은'children(). children()'보다 빠르거나 동등한가? 뭔가 원하지 않는 자손을 걸러 내기 전에 모든 요소를 ​​찾을 것이기 때문에 속도가 느려질 것입니다. –

+0

@JoyceBabu 아니, 더 빠르지 않을거야. – VisioN

1

는 즉시 사용할 경우 :

$('table > tbody > tr'); 
+1

. 또한, 그는 지금은 더 이상 사용되지 않는다고 언급했습니다. 왜 그들이 실제 CSS 선택기를 비추천 모르겠지만 그것이 사실로 보입니다 : http://api.jquery.com/child-selector/ –

+1

@JosephMarikle 그것은 단지 (예 :'find'와 함께) 컨텍스트와 함께 사용되면 더 이상 사용되지 않습니다. 초기 요소가 없다 (그래서'> tbody> tr'). OP에는 유용하지 않지만 괜찮습니다. – lonesomeday

+0

@Rick_Donohoe '$ table' 컨텍스트가 있기 때문에 사용할 수 없습니다. –