2010-02-24 3 views
14

jQuery에서 캡슐화 한 기본 DOM 요소를 반환하도록하려면 어떻게해야합니까? 당신이 jQuery로 요소를 발견하면jQuery 객체에서 네이티브 DOM 요소를 검색 하시겠습니까?

+1

"요소 조작"외에 jQuery 선택기로 무엇을 할 것입니까? 제 질문은 기본적으로 "jQuery를 사용할 수 있습니까?"와 같은 질문을하는 것입니다. 그 대답은 "그렇습니다." – Pointy

+0

왜이 작업을 수행 하시겠습니까? 그리고 아니오, $ ("cheese_tag")가 jQuery 객체를 반환 할 것이기 때문에 표현식이 작동하지 않을 것입니다. – alexn

+0

미안하지만 내 질문에 더 좋은 방법은 "jQuery 객체를 일반 자바 스크립트가 조작 할 수있는 객체로 변환 할 수 있습니까?"입니다. get jQuery에서 조작을 위해 javascript 객체를 반환하는 것과 같습니다. – mattsven

답변

28

, 당신은 "GET"기능을 얻을 수 있습니다 :

var regularElement = $('#myElementId').get(0); 

을은 ".each()"내부 함수는 "이"포인터가 "진짜"를 의미 요소 :

$('input.special').each(function() { 
    var type = this.type; 
    this.value = "exploding balloon"; 
    // etc 
}) 

jQuery를 사용하면 Javascript가 "다르게"되지 않습니다. 자바 스크립트이며 DOM은 여전히 ​​DOM입니다.

+1

jquery 객체에서 get() 함수를 사용하는 이유를 이해하는 데 몇 분이 걸렸지 만 질문 자체에 대한 주석을 읽었습니다. 지금은 의미가 있습니다. 비 jQuery JavaScript와 통합 할 때 get()이 유용하다는 것을 알 수 있습니다. –

+0

Aaaaand'$ ('# myElementId') [0]'도 작동합니다. – mattsven

2

$('myTag').get(0)은 HTML 요소를 반환합니다.

0

jQuery 객체가 "cheese_tag"의 첫 번째 인스턴스인지 확인하려고한다고 가정합니다. :first 선택자로 첫 번째 태그를 찾을 수 있으며 비교를 할 필요가 없습니다. 예를 들어, 첫 번째 div 태그는 다음과 같습니다. $('div:first').

jQuery 선택기의 전체 목록은 documentation을 참조하십시오.

+0

정확히 ... 나는 자바 스크립트 HTML 요소 객체를 반환하려고합니다. – mattsven

0

다른 사람들이 이미 직접 질문에 답변했습니다. get() 메소드를 사용하십시오.

그러나 대부분의 경우 원시 DOM 요소에 대한 액세스 권한을 얻은 다음 "표준"JavaScript를 사용하여 수정하는 대신 jQuery 메서드를 사용하여 조작을 수행하려고합니다.

예를 들어 jQuery를 사용하면 $ ('mySelector'). addClass ('myClass')를 사용하여 CSS 클래스를 DOM 요소에 추가 할 수 있습니다. 이것은 직접적인 DOM 조작을 사용하여 훨씬 더 복잡합니다 (그리고 브라우저 특정). 이 개념은 당신이해야 할 거의 모든 다른 DOM 조작으로 확장됩니다.

2

jQuery는 Sizzle Selector Engine *을 사용합니다. 당신도 스스로 사용할 수 있습니다.

* 그것이 바로 덕 Neiner 수단에 의해 확인 됨) JQuery와 객체는 하나 개 이상의 주변 DOM 소자 어레이와 같은 래퍼

+1

오른쪽! 단순히 sizzle.js를 포함시킨 다음이 줄을 추가하면됩니다 :'window. $ = window.Sizzle'. 그리고'$ ("cheese_tag")'는 []을 반환 할 것입니다. '$ ("# cheese_id") [0] === document.getElementById ("cheese_id")' –

+0

아니, "나는 더그 네이이너이고 나는이 대답을 승인 한단다"? Hehe. – Sampson

+3

저는 Doug Neiner이고이 대답을 승인합니다 –

0

. 실제 DOM 요소 (jQuery 객체 대신)에 대한 참조를 얻으려면 두 가지 옵션이 있습니다. 검색

$("#foo").get(0); // Identical to above, only slower. 

당신은 또한 인수없이 .get()를 호출 할 수

$("#foo")[ 0 ]; // Equivalent to document.getElementById("foo") 

두 번째 방법은 갔지() 함수를 사용하는 것입니다 : 첫 번째 (빠른) 방법을 사용하여 배열 표기법입니다 DOM 요소의 진정한 배열.

+0

배열에 대해 단지'get() '을 호출 할 수 있다는 것을 알지 못했습니다. 좋은. – mattsven

관련 문제