JQuery 對象 和 DOM對象的轉換方法

JQuery對象與DOM對象
JQuery:JQuery庫中,可以通過本身自帶的方法獲取頁面DOM 元素的對象叫做JQuery對象。對象用var開頭定義
DOM:是以層次結構組織的節點或信息片斷的集合。文檔對象模型(Document Object Model)是給HTML與XML文件使用的一組API。DOM的本質是建立網頁與腳本語言或程序語言溝通的橋樑。

可以通過文字理解爲:
1DOM 對象 & JQuery對象

  • 打開網頁後,首先看到的是瀏覽器窗口,即頂層的window對象。
  • 其次,看到的是網頁文檔的內容,即document文檔。
    ..........
  • 通過本身自帶的方法獲取頁面DOM元素,通過jQuery包裝DOM對象後產生的對象。jQuery對象是jQuery獨有的,

我們可以通過以下例子理解:

<p id="f-color"></p>

需求我們要獲取頁面上p標籤,然後給這些文本添加一段文字。並且讓改變原有文字顏色
通過原生JS

  //獲取p標籤
  var p =document.getElementById('f-color');
  //給P標籤添加文字和顏色
  p.innerText    = "Hello . Javascript";
  p.style.color  = "red";
  console.log(p);

通過JQuery

//獲取對象**$('#f-color');** 
var $p = $('#f-color');
//通過調用自身html css 方法進行添加內容和改變顏色
$p.html('Hello . JQurey').css('color','red');
console.log($p);


由控制檯輸出的數據我們也可以很直觀的看出來我們獲取數據不同,通過原生js我們獲取到DOM元素也就是DOM對象,而通過JQ我們獲取的是一個僞數組的對象,這個對象包含了DOM對象的信息和操作方法

2 JQuery 對象 和 DOM對象的轉換方法

2.1 我們爲什麼要轉換那?
在工作我們會大量使用JQ。但是JQ對象不能被調用原生JS,DOM對象也同樣不能調用JQ的方法,所以在某些需求下,我們要進行JQ對象和DOM對象的轉化
2.2 那我們要如何轉化?

在JQ中,只需要調用[index]和get(index)方法即可將JQ對象轉換爲DOM對象。DOM對象只需調用JQ的$()方法即可包裝爲JQ對象:

2.2.1 jQuery對象轉化成DOM對象
①··我們可以通過jQuery DOM 元素方法 - get() 方法。
定義:get() 方法獲得由選擇器指定的 DOM 元素。
.get() 方法允許我們直接訪問jQuery對象中相關的DOM節點,get方法中提供一個元素的索引:.get(index)

語法: $(selector).get(index)
index 參數 :可選。規定獲取哪個匹配元素(通過 index 編號)。

我們同樣還是用案例來理解:

  <p id="f-color">Hello . JQuery</p>
  <p id="f-color">Hello . JQuery</p>
  <p id="f-color">Hello . JQuery</p>

我們多添加幾個p標籤。並且填上內容

  //我們用JQ的方法獲取p元素
    var $p = $('p');
  //通過get方法,轉化成DOM對象
    var p  = $p.get(0);
  //通過原生的方法進行操作
    p.style.color = 'red';
    console.log(p);

②利用下標來的方式來讀取JQ中的DOM對象
數組的索引是從0開始的,也就是第一個元素下標是0

var $p =  $('p');
//通過下標獲取第一個元素 。並轉化成DOM對象
var div = $div[0] 
//操作dom對象的屬性
div.style.color = 'red' 
    console.log(p);

其實get();是由後者包裝好的,我們看看源碼就知道,聽說get是爲了讓開發者更方便才使用的
2.2.2 DOM對象轉化成jQuery對象
**如果傳遞給$(DOM)函數的參數是一個DOM對象,jQuery方法會把這個DOM對象給包裝成一個新的jQuery對象 **

通過$(dom)方法將普通的dom對象加工成jQuery對象之後,我們就可以調用jQuery的方法了

//通過原生JS的方法獲取p元素
var p = document.getElementById('f-color');
// 轉化
var $p = $(p);
// 獲取第一個p元素
var $first = $p.first();
// 操作
$first.css('color','red');
console.log($first);

如有不足,請大神多指點。
參考:
http://www.jquerycn.cn/a_4561
https://www.runoob.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章