新聞中心
JQuery對(duì)象和DOM對(duì)象的區(qū)別
一直以來(lái)對(duì)于通過(guò)jQuery方式獲取的對(duì)象使不能直接使用JavaScript的一些方法的,開(kāi)始的時(shí)候不理解,現(xiàn)在此案知道,原來(lái)jQuery
創(chuàng)新互聯(lián)公司于2013年開(kāi)始,先為萬(wàn)榮等服務(wù)建站,萬(wàn)榮等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為萬(wàn)榮企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
獲得的對(duì)象并不和我們平時(shí)使用getElementById獲得的對(duì)象是一樣的對(duì)象。所以一些新手就很迷惑,為什么${”#Element”}不能直接
innerHTML,這就是原因所在,解決方式請(qǐng)看下文。
jQuery對(duì)象與dom對(duì)象的轉(zhuǎn)換
只有jquery對(duì)象才能使用jquery定義的方法。注意dom對(duì)象和jquery對(duì)象是有區(qū)別的,調(diào)用方法時(shí)要注意操作的是dom對(duì)象還是jquery對(duì)象。
普通的dom對(duì)象一般可以通過(guò)$()轉(zhuǎn)換成jquery對(duì)象。
如:
$(document.getElementById("msg"))
則為jquery對(duì)象,可以使用jquery的方法。
由于jquery對(duì)象本身是一個(gè)集合。所以如果jquery對(duì)象要轉(zhuǎn)換為dom對(duì)象則必須取出其中的某一項(xiàng),一般可通過(guò)索引取出。
如:
$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]
這些都是dom對(duì)象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下幾種寫(xiě)法都是正確的:
$("#msg").html();
$("#msg")[0].innerHTML;
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;
jQuery查找對(duì)象是按照標(biāo)準(zhǔn)的dom層級(jí)關(guān)系來(lái)查找的
如table中無(wú)論你是否有tbody,在查找子對(duì)象的時(shí)候都要按照table--tbody--tr的層級(jí)關(guān)系來(lái)查找
關(guān)于this
input name="testThis" type="text" onchange="textThis(this)" /
function textThis(obj)
{
//在引用自己用的this是dom對(duì)象
alert($(obj).val());
}
該this為dom對(duì)象
innerHTML和outerHTML
innerHTML設(shè)置或獲取對(duì)象起始和結(jié)束標(biāo)簽內(nèi)的HTML
outerHTML設(shè)置或獲取對(duì)象及其內(nèi)容的HTML形式
談?wù)勀銓?duì)JQuery對(duì)象和DOM對(duì)象的理解,及其區(qū)別與聯(lián)系
1、DOM對(duì)象和JQuery對(duì)象的區(qū)別
1) DOM對(duì)象
DOM是Document Object Model,即文檔對(duì)象模型的縮寫(xiě)。DOM是以層次結(jié)構(gòu)組織的節(jié)點(diǎn)或信息片段的集合,每一份
DOM都可以表示成一個(gè)樹(shù)。
2) JQuery對(duì)象
JQuery對(duì)象是通過(guò)JQuery包裝DOM對(duì)象后產(chǎn)生的對(duì)象,JQuery對(duì)象是獨(dú)有的,可以使用JQuery的方法
如:
$('#test').html();
等價(jià)于DOM中的:
document.getElementById("test").innerHTML;
雖然JQuery對(duì)象是包裝DOM對(duì)象后產(chǎn)生的,但是JQuery無(wú)法使用DOM對(duì)象的任何方法,同理,DOM對(duì)象也不能使用JQuery對(duì)象方法。
注:
$('#test') 這樣獲取的是JQuery對(duì)象,document.getElementById("test") 獲取的是DOM對(duì)象,它們不是等價(jià)的。
2、DOM對(duì)象和JQuery對(duì)象的相互轉(zhuǎn)換
1)JQuery對(duì)象轉(zhuǎn)化為DOM對(duì)象
var $mr = $('#mr'); //JQuery對(duì)象var mr1 = $mr[0]; //DOM對(duì)象var mr2 = $mr.get(0); //DOM對(duì)象alert(mr1.value); //彈出DOM對(duì)象元素的值
2)DOM對(duì)象轉(zhuǎn)化為JQuery對(duì)象
var mt = document.getElementById("mt"); //DOM對(duì)象var $mt = $(mr); //JQuery對(duì)象alert($mt.val()); //彈出JQuery對(duì)象的值
“JQuery對(duì)象”和“DOM對(duì)象”的區(qū)別?
1.jQuery對(duì)象和DOM對(duì)象
第一次學(xué)習(xí)jQuery,經(jīng)常分辨不清哪些是jQuery對(duì)象,哪些是 DOM對(duì)象,因此需要重點(diǎn)了解jQuery對(duì)象和DOM對(duì)象以及它們之間的關(guān)系.
DOM對(duì)象,即是我們用傳統(tǒng)的方法(javascript)獲得的對(duì)象,jQuery對(duì)象即是用jQuery類庫(kù)的選擇器獲得的對(duì)象;
復(fù)制代碼 代碼如下:
var domObj = document.getElementById("id"); //DOM對(duì)象
var $obj = $("#id"); //jQuery對(duì)象;
jQuery對(duì)象就是通過(guò)jQuery包裝DOM對(duì)象后產(chǎn)生的對(duì)象,它是jQuery獨(dú)有的。如果一個(gè)對(duì)象是
jQuery對(duì)象,那么就可以使用jQuery里的方法,例:
$("#foo").html(); //獲取id為foo的元素內(nèi)的html代碼,html()是jQuery特有的方法;
上面的那段代碼等同于:
document.getElementById("foo").innerHTML;
注意:在jQuery對(duì)象中無(wú)法使用DOM對(duì)象的任何方法。
例如$("#id").innerHTML 和$("#id").checked之類的寫(xiě)法都是錯(cuò)誤的,可以用$("#id").html()和$("#id").attr ("checked")之類的 jQuery方法來(lái)代替。
同樣,DOM對(duì)象也不能使用jQuery方法。學(xué)習(xí)jQuery開(kāi)始就應(yīng)當(dāng)樹(shù)立正確的觀念,分清jQuery對(duì)象和DOM對(duì)象之間的區(qū)別,之后學(xué)習(xí) jQuery就會(huì)輕松很多的。
2.jQuery對(duì)象和DOM對(duì)象的互相轉(zhuǎn)換
在上面第一點(diǎn)說(shuō)了,jquery對(duì)象和dom對(duì)象是不一樣的!比如jquery對(duì)象不能使用dom的方法,dom對(duì)象不能使用jquery方法,那假如我 jquery沒(méi)有封裝我要的方法,那能怎么辦呢?
這時(shí)我們可以將jquer對(duì)象轉(zhuǎn)換成dom對(duì)象
jquery對(duì)象轉(zhuǎn)換成 dom對(duì)象
jquery提供了兩種方法將一個(gè)jquery對(duì)象轉(zhuǎn)換成一個(gè)dom對(duì)象,即[index]和get(index)。可能有人會(huì)覺(jué)得奇怪,怎么是用下標(biāo)呢,沒(méi)錯(cuò),jquery對(duì)象就是一個(gè)數(shù)組對(duì)象.
下面代碼將演示一個(gè)jquery對(duì)象轉(zhuǎn)換成dom對(duì)象,再使用dom對(duì)象的方法
復(fù)制代碼 代碼如下:
var $cr=$("#cr"); //jquery對(duì)象
var cr = $cr[0]; //dom對(duì)象 也可寫(xiě)成 var cr=$cr.get(0);
alert(cr.checked); //檢測(cè)這個(gè)checkbox是否給選中
dom對(duì)象轉(zhuǎn)換成jquery對(duì)象
對(duì)于一個(gè)dom對(duì)象,只需要用$()把dom對(duì)象包裝起來(lái),就可以獲得一個(gè)jquery對(duì)象了,方法為$(dom對(duì)象);
復(fù)制代碼 代碼如下:
var cr=document.getElementById("cr"); //dom對(duì)象
var $cr = $(cr); //轉(zhuǎn)換成jquery對(duì)象
轉(zhuǎn)換后可以任意使用jquery中的方法了.
通過(guò)以上的方法,可以任意的相互轉(zhuǎn)換jquery對(duì)象和dom對(duì)象.
網(wǎng)站名稱:jquerydom對(duì)象,jquery的
本文URL:http://www.ef60e0e.cn/article/dscdeod.html