2012-07-10 2 views
1

.find() IE 7 이하 버전에서는 기능이 매우 느리게 실행되어 전화 끊기가 자주 발생합니다.jquery .find() function alternative?

누군가 나에게 대안을 제안 할 수 있습니까?

다음은 코드 단편입니다.

$(".dobAutoTab").each(function() { 
    var dobFields = $(this).children().find("input"); 
    var fldDate = $(dobFields[0]); 
    var fldMonth = $(dobFields[1]); 
    var fldYear = $(dobFields[2]); 
)}; 
+0

가능 dupicate : http://stackoverflow.com/questions/7258829/ jquery-find-method-alternative –

+7

나는 이것이 중복이라고 생각하지 않는다; 이 질문은 행동에 관한 것이지만,이 질문은 행동에 관한 것입니다. – Pointy

+1

'.find '의 성능은 선택자 당 브라우저마다 격렬하게 변할 것입니다. 사용하고있는 셀렉터에 대한 몇 가지 예를 들어 주시면 더 나은 셀렉터를 선택할 때 도움이 될 것입니다. 또한 jQuery의 어떤 버전을 사용하고 있습니까? –

답변

2

예를 들어 $('#id span')는 기본적으로 훨씬 빠르게 $('#id').find('span')하지만, 많이, 보통 CSS 선택기를 사용해보십시오.

하지만 어쨌든 일부 코드 예제는보다 구체적인 답변을 얻을 수 있습니다.

+0

다음은 코드 스 니펫입니다. var fldDate = $ (dobFields [0]); var fldMonth = $ (dobFields [0]); fooDate = $ (dobAutoTab) dobFields [1]); var fldYear = $ (dobFields [2]);)}; –

+0

귀하의 JS뿐만 아니라 귀하의 질문에 귀하의 HTML 구조를 게시하는 것이 가장 좋을 것입니다. 어쩌면 당신의 현재 접근법은 당신이 어쨌든 원하는 것을하는 데별로 효과적이지 않습니다. – Simon

5

은 대부분 당신이 달성 하려는지에 따라 달라집니다

  • .filter()는 전제 조건과 일치하는 요소에서 검색합니다.
  • .find() 어린이, 어린이 및 모든 자손에서 검색하십시오.
  • .children()은 정확히 같은 방식으로 작동하지만 멀리 떨어진 자손이 아닌 어린이 만 찾습니다.
  • .closest() 현재 요소에서 시작하여 선택기와 일치하는 더 가까운 (첫 번째) 요소를 가져옵니다.
  • .parent() 일치하는 요소의 현재 세트에서 각 요소의 부모를 가져옵니다 (선택적으로 선택기로 필터링 됨).

물론 선택자가 더 구체적 일수록 결과가 더 빠릅니다.

그리고 당신은, 당신은 내부 상황을 필요 검색 할 수 있다면, 그 방법은 더 빨리, 선택기에 대한 자세한 정보를 원하시면 것, check here