1. 程式人生 > >JQ的物件與dom的物件(.eq()與[]的區別)

JQ的物件與dom的物件(.eq()與[]的區別)

首先我們假設一個html中有以下元素:

<div class="sel"></a>
<div class="sel"></a>
<div class="sel"></a>
 

使用JQ選擇元素的時候

$('.sel')//我們選擇了三個元素
$('.sel').eq(0)//我們選擇了第一個div,它是一個JQ物件,不可以使用dom屬性和方法
$('.sel')[0]//我們也是選擇了第一個div,但是這是一個dom物件,可以使用dom屬性方法,但不可以使用JQ的屬性方法

$('.sel').eq(0)[0]//選擇第一個div並轉換為dom物件,同上
$('.sel')[0].eq(0)///錯誤,dom物件無法使用JQ方法,因為.eq()是JQ的方法
 

 

那麼,JQ的物件與dom的物件有什麼區別呢?

DOM物件
DOM物件是通過面向物件的方式描述的文件模型模型
通過DOM可以訪問所有的HTML元素,建立新的元素以及修改刪除元素及其屬性
JQuery物件
JQuery物件是一個Javascript陣列
陣列包含的資訊
jquery 當前的JQuey框架版本號
length 指示這個陣列的元素個數
context 一般指向htmlDocument物件
selector 傳遞進來的選擇器內容
JQuery物件是通過JQuery物件包裝DOM物件產生的物件,是JQuery獨有的,所以JQuery物件不能使用DOM方法。反之,DOM物件不能使用JQuery方法。
兩者之間的轉換


var domElement = $(".sel")[0];
//JQuery轉換為Dom物件
var jqElement = $(domElement);
//Dom物件轉化為JQuery物件


//獲取JQuery物件
var jqElement = $("id");
//獲取dom物件
var domElement = document.getElementById("id");