programing

jQuery : eq() vs get()

telecom 2023. 9. 27. 16:54
반응형

jQuery : eq() vs 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()실패합니다.

http://api.jquery.com/get/

설명: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번째 위치에 있는 멤버를 DOM 요소로 반환합니다.

이것이 작동하지 않는 이유:

$("h2").get(0).fadeIn("slow");

그 이유는h2DOM 요소에 다음 메서드가 없습니다.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 methods를 호출할 수 있는 Jquery wrapped 객체입니다.

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.

출처 : http://www.snoopcode.com/JQuery/jquery-eq-selector

위의 답변들은 구체적이고 정확하게 설명하였습니다.다 이 될 수 몇 가지 .get().

  1. 을 에게 .get()합니다. DOM 합니다.

  2. get(),맘에 들다var s = $("#id").get(0)을 사용하여 jQuery다라는해서를 할 수 있습니다.$(s)

  3. 합니다.$obj[i] 다른 $obj.get(i).

    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

반응형