jQuery物件和Dom物件的區別與轉換
DOM是Document Object Model(文件物件模型)的簡寫,只有HTML,XML等文件結構的語言才具有DOM。
DOM中的節點通常分為三種類型:元素節點,屬性節點,文字節點。
1.元素節點:<html>,<body>,<p>,<ul>,<img>,<li>等標籤形式的節點就稱為元素節點。
2.屬性節點:例如,<img>元素中的src,alt就是屬性節點。
3.文字節點:就是指HTML中的文字內容。如<span>hello world</span>,其中hello world就是文字節點。
DOM物件:
var dom = document.getElementById("myDog"); //獲取DOM物件
var html = dom.innerHTML; //dom物件使用JavaScript中的屬性
Jquery物件:
var dom = $("#myDog"); //等價於 document.getElementById("myDog");
var html = dom.html(); //等價於dom.innerHTML;
DOM物件的方法/屬性和jQuery物件的方法/屬性是彼此獨立的。即DOM物件只能使用DOM物件的方法/屬性,而jQuery物件只能使用jQuery物件的方法/屬性。例如:DOM物件可以使用DOM物件擁有的 innerHTML屬性,但不能使用jQuery物件擁有的html()方法。
DOM和jQuery物件之間的相互轉換:
(1)DOM物件轉為jQuery物件:
var dom = document.getElementById("myDog"); //DOM物件
var $jqObject = $(dom); //通過$()將DOM物件轉為jQuery物件。
其中$()稱為jQuery工廠。
(2)jQuery物件轉為DOM物件:
將jQuery物件轉為DOM物件。jQuery物件的本質是一個類似陣列或集合的物件,而DOM物件的本質是一個普通物件。因此jQuery物件轉為DOM物件的本質,就是將一個數組和集合轉為一個普通物件。
方法一:將jQuery物件看成一個數組,通過使用陣列下標的方式轉為DOM物件,例如:
var $JObject = $("#mydog"); //獲得jQuery物件
var jsObject = $JObject[0]; //轉為Dom物件
方法二:將jQuery物件看成一個集合,通過使用get(index)的方式轉為DOM物件,例如:
var $JObject = $("#mydog"); //獲得jQuery物件
var jsObject = $JObject.get(0); //轉為Dom物件