2012-11-27 1 views
6

그래서,이처럼 보이는 몇 가지 자바 스크립트/jQuery를 가지고 : 나는 jQuery를 주어진 선택에서 작동하고, var $foo에 결과 DOM 요소를 절약 할 수 있다는 가정하에 운영했습니다jQuery 요소를 var에 저장하면 사용시 요소를 다시 검색해야합니까?

var $foo = $('#bar'); 
$foo.hide(); 

을 ... 내가 볼 수있는 한 사실이다.

그러나 $foo.hide()을 호출하면 jQuery가 #bar 요소를 다시 검색하게됩니까?

+0

아니요 ..... –

+0

이것은 모범 사례로 간주됩니다. 재사용을 계획하고 있다면 jQuery 객체에 대한 참조를 거의 항상 저장해야합니다. – troynt

답변

8

아니요, $ (elem)을 호출하면 참조됩니다. 이것이 요소에 대한 참조를 저장하기 위해 var이 사용 된 이유입니다. var에 대한 참조를 저장하는 것이 가장 좋습니다. 다음 번 코드를 사용하므로 이전 참조가 사용되고 DOM을 다시 검색 할 필요가 없습니다. var에 같은 jQuery 오브젝트를 설정하는 나의 이해에서

//reference 
var a = $('#id'); 

//use 
a.hide(); 

//same reference, use again 
a.show(); 
+0

그러나 Andrew가 제공 한 코드는 유효합니다. $ 함수는 DOM 요소에 대한 참조를 포함하는 jQuery 객체를 반환하고 이후의 모든 지점에서 사용할 수 있습니다. 'var foo = $ ("bar")가있는 경우 숨기기; foo.show(); '결과는 ** 표시 ** 입니다. – Ash

+0

예 유효한 코드입니다 :-) –

1

는 객체를 캐시, 따라서 그것은 당신이 somehting을 실행하는 데 사용할 필요가 jQuery 오브젝트 매번 다시 작성하지 않습니다. 이에 대해

몇 가지 기사

, here's the first one I found off google

나는 그러나 $('#bar')는 document.getElementById를 ('바') 너무 많이하지 건물 때문에 상당히 빠른에 직접적으로 의미 있다고 생각하지만, 당신은 객체의 배열을 가지고 있으면 더 빨리이다 . $('.class tagType')

관련 문제