2011-08-08 5 views
12

jQuery는 요소를 선택할 때 항상 배열을 반환합니까 (물론 하나 이상의 요소가있는 경우)? 예 :jQuery는 항상 배열을 반환합니까?

$('#Myelement') 
$('div') 
$('tbody') 

선택기가 ID 인 경우 어떻게됩니까? 선택기가 요소이지만 하나만있는 경우는 어떻게됩니까?

답변

12

jQuery 함수는 선택기와 일치하는 요소가 없더라도 항상 jQuery 개체 (즉, 배열을 기반으로 함)를 반환합니다.

그런 식으로 일치하는 요소가없는 경우에도 검색된 요소에 영향을 줄 것으로 예상되는 메소드를 호출 할 수 있습니다. jQuery 객체에 요소가 없으면 아무 작업도 수행하지 않습니다.

jQuery 객체에 요소가 포함되어 있는지 알아야 할 경우 length 속성을 사용할 수 있습니다.

+0

jQuery가 배열을 반환하는 것이 아니기 때문에 두 번째 구문은 좋은 설명이 아닙니다. $()는 주어진 selector와 일치하는 요소를 찾았 기 때문에 일부 id를 가진 요소를 기대할 수는 없지만 일부 id를 갖는 요소를 포함하는 결과가 있기 때문입니다. –

+0

@ Matías Fidemraizer : 두 번째 단락은 메서드가 배열을 반환하는 이유에 대한 설명이 아니며이를 사용하여 어떻게 이점을 얻을 수 있는지 설명합니다. 나는 당신이 제공하는 설명으로 당신이 의미하는 바를 이해하지 못한다는 것을 두려워합니다. – Guffa

+1

그러나'$ ('td') [0] .html ('hi')'를 사용하면 인덱스에'.html' 메서드가 없다는 예외가 있습니다. jQuery는 jQuery 객체의 일부가 아닙니다. 내가 잘못? – dpp

1

$([selector])은 요소 검색 인 $.find([selector])의 바로 가기와 같습니다.

"결과 선택"보다는 검색 중이므로 그 같은 jQuery 함수로 실행되는 모든 것이 하나 이상의 결과를 반환 할 수 있습니다.

관련 문제