首頁  >  文章  >  web前端  >  jquery中eq()和get()的差別是什麼

jquery中eq()和get()的差別是什麼

青灯夜游
青灯夜游原創
2022-03-11 11:42:172417瀏覽

區別:1、eq()方法返回的是jquery對象,而get()方法返回的是js對象;2、eq方法可以直接和其他jquery方法配合使用,而get()方法不能直接配合使用,需先將回傳值轉換為jquery物件才可使用jquery方法。

jquery中eq()和get()的差別是什麼

本教學操作環境:windows7系統、jquery1.10.2版本、Dell G3電腦。

jquery中eq()和get()的區別

之前使用eq和get方法都是隨性而為,卻沒深究其中的區別:

eq方法返回的是jquery對象,而get方法返回的是js對象;jquery對象可以使用jquery方法,而js對象卻只能使用js原生的方法,但是js對象可以轉換成jquery物件再使用jquery方法即可;例如:存取某個元素的backcolor:

①使用eq方法:$("dv").eq(0).css("backcolor ")

②使用get方法:$("dv").get(0).style.backcolor

我們用一個範例來說明:

首先引入JQuery庫文件,

html

<body>
<ul id="ul">
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
    </ul>
<input type="button" value="click" id="b1">
</body>

js

<script>
$("#b1").on("click",function(){
     var $obj  =  $("#ul li");
     $obj.eq(1).css("color","yellow");
     $obj.get(2).css("color","red");
})
</script>

此時,點擊按鈕第二個li,即item2字體變為黃色,但是item3沒有變成紅色,且報如下錯誤:

報錯的意思是,$obj沒有get()方法,因為它是一個DOM物件組成的陣列,它是沒有get()方法,那麼我們怎麼把它變成JQuery物件了?

只需將$obj.get(2)改為$($obj.get(2))即可,

<script>
$("#b1").on("click",function(){
     var $obj  =  $("#ul li");
     $obj.eq(1).css("color","yellow");
     $($obj.get(2)).css("color","red");
})
</script>

再一次點選按鈕時,就會呈現如下的畫面:

驗證完畢,經過這個例子相信大家對於eq()與get( )方法會有所了解了。

最後在來個擴充吧,還是基於上面的html

<script>
$("#b1").on("click",function(){
      var $obj = $("#ul li");
      var obj1 = $obj.get(1);
      var obj2 = $obj[1];
      if(obj2===obj1){
            alert(111);
        }else{
            alert(222);
        }
})
</script>

大家可以猜猜看,彈出那個了?

經過本人驗證彈出的是111,那麼可以得到一個結論:$obj.get(1)和$obj[1],在這裡可以互相替換使用。

jquery物件與Dom物件相互轉換方法:

#1.jquery物件->Dom物件:

有兩種方式:

①jquery物件.get(0)

例如:

var v = $("#id").get(0);//Dom对象

②jquery物件[0]

例如:

var v = $("#id")[0];//Dom对象

2.Dom物件->jquery物件:

$(Dom物件),例如:

var $v =$(document.getelementbyid("id"));//jquery对象

【推薦學習:jQuery影片教學web前端影片

以上是jquery中eq()和get()的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn