jQuery : eq () 대 get ()
저는 jQuery를 처음 사용하고 jQuery get()
와 eq()
함수 의 차이점이 무엇인지 궁금 합니다. get()
함수가 무엇을하는지 오해 할 수도 있지만 같은 줄의 반환 된 요소에서 반환 된 함수를 호출 할 수없는 것이 이상하다고 생각했습니다.
//Doesn't work
I.e. $("h2").get(0).fadeIn("slow");
//Works
$("h2").eq(0).fadeIn("slow");
.get()
및 .eq()
모두 복귀 JQuery와 객체 어레이로부터 하나의 "요소", 그러나 다른 형태의 하나의 요소를 리턴한다.
.eq()
jQuery 객체로 반환합니다. 즉, DOM 요소가 jQuery 래퍼로 래핑되어 jQuery 함수를 허용합니다.
.get()
원시 DOM 요소의 배열을 반환합니다. 원시 DOM 요소 에서처럼 속성에 액세스하고 함수를 호출하여 각각을 조작 할 수 있습니다. 그러나 jQuery로 래핑 된 객체로서의 정체성을 잃어 버리므로 jQuery 함수 .fadeIn
는 작동하지 않습니다.
get()
DOM 요소 :eq()
를 eq()
반환하고 jQuery 요소를 반환합니다. DOM 요소에는 메소드가 없기 fadeIn()
때문에 실패합니다 .
설명 : jQuery 객체와 일치하는 DOM 요소를 검색합니다.
http://api.jquery.com/eq-selector/
설명 : 일치하는 집합 내 색인 n에있는 요소를 선택합니다.
get(0)
(docs) 는 집합의 첫 번째 DOM 요소를 반환합니다.
eq(0)
(docs) 는 jQuery 객체에 래핑 된 세트의 첫 번째 DOM 요소를 반환합니다.
그것이 .fadeIn("slow");
당신이 할 때 작동하지 않는 이유 .get(0)
입니다. DOM 요소에는 fadeIn()
메소드가 없지만 jQuery 객체에는 메소드가 있습니다.
다른 답변을 바탕으로 작성하려면 :
$('h2').get(0) === $('h2').eq(0)[0] //true
$( $('h2').get(0) ) === $('h2').eq(0) //true
eq(i)
수신자의 세트에서 i 번째 멤버를 jQuery
객체 로 검색하고 i get(i)
번째 위치에있는 멤버를 DOM 요소로 반환합니다.
이것이 작동하지 않는 이유 :
$("h2").get(0).fadeIn("slow");
h2
DOM 요소에라는 메서드 가 없기 때문 fadeIn
입니다.
eq(0)
대신 여기에서 사용해야 합니다.
여기에 다른 사람들이 제시 한 포인트를 설명하는 예를 제공합니다. 다음 코드를 고려하십시오.
<div id="example">
Some text
<div>Another div</div>
<!--A comment-->
</div>
및 해당 js 코드,
$(document).ready(function() {
var div = $("#example").get(0);
console.log(typeof(div));
console.log(div);
console.log("XXXXXXXXX");
var div_eq=$('#example').eq(0);
console.log(typeof(div_eq));
console.log(div_eq);
});
이것은 당신이 보게 될 것입니다
object
excercise1.js (line 5)
<div id="example">
excercise1.js (line 6)
XXXXXXXXX
excercise1.js (line 7)
object
excercise1.js (line 9)
Object[div#example]
첫 번째는 DOM 객체이고 후자는 Jquery 메서드를 호출 할 수있는 Jquery 래핑 된 객체입니다.
jQuery eq() method selects a HTML element with a specific index number.
Here is an example of that
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
$( "body" ).find( "div" ).eq( 2 ).addClass( "red" );
// it finds the second div in the html body and change it to red color.
Source: http://www.snoopcode.com/JQuery/jquery-eq-selector
Answers above have explained specificly and correctly. I want to add a few points here that might help for the use of get()
.
If you don't pass an argument to
.get()
, it will return an Array of the DOM elements.If you got a DOM object using
get()
, likevar s = $("#id").get(0)
you can turn it back into jQuery object simply by using this,$(s)
You can use
$obj[i]
as an alternative way if you don't want to use$obj.get(i)
, see below,var $obj = $("#ul li"); var obj1 = $obj.get(1); var obj2 = $obj[1]; //true return obj2===obj1;
참고URL : https://stackoverflow.com/questions/4709660/jquery-eq-vs-get
'developer tip' 카테고리의 다른 글
사용자의 시간대를 무시하고 Date ()가 특정 시간대를 사용하도록하는 방법 (0) | 2020.08.27 |
---|---|
개인 설정은 MSBuild 프로젝트 파일의 ProjectReference에서 무엇을합니까? (0) | 2020.08.27 |
날짜 문자열 구문 분석 및 형식 변경 (0) | 2020.08.26 |
Node.js의 동기 요청 (0) | 2020.08.26 |
Powershell에서 Null 병합 (0) | 2020.08.26 |