저는 jQuery를 처음 사용하고 jQuery get()
와 eq()
함수 의 차이점이 무엇인지 궁금 합니다. get()
함수가 무엇을하는지 오해 할 수도 있지만 같은 줄의 반환 된 요소에서 반환 된 함수를 호출 할 수없는 것이 이상하다고 생각했습니다.
//Doesn't work
I.e. $("h2").get(0).fadeIn("slow");
//Works
$("h2").eq(0).fadeIn("slow");
저는 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
여기에 다른 사람들이 제시 한 포인트를 설명하는 예를 제공합니다. 다음 코드를 고려하십시오.
<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 () 메서드는 특정 인덱스 번호가있는 HTML 요소를 선택합니다.
여기에 그 예가 있습니다.
<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.
eq(2)
세 번째 div를 반환 하지 않습니까?
위의 답변은 구체적이고 정확하게 설명되었습니다. .NET 사용에 도움이 될 수있는 몇 가지 요점을 여기에 추가하고 싶습니다 get()
.
에 인수를 전달하지 않으면 .get()
DOM 요소의 배열이 반환됩니다.
당신이 사용하여 DOM 객체를 가지고있는 경우 get()
처럼,
var s = $("#id").get(0)
당신은 단순히이를 이용하여 다시 jQuery를 객체로를 설정할 수 있습니다,$(s)
$obj[i]
을 사용하지 않으려면 다른 방법으로 사용할 수 있습니다. $obj.get(i)
아래를 참조하십시오.
var $obj = $("#ul li");
var obj1 = $obj.get(1);
var obj2 = $obj[1];
//true
return obj2===obj1;