jQuery之DOM對(duì)象和jQuery對(duì)象的轉(zhuǎn)換與區(qū)別分析
本文實(shí)例分析了DOM對(duì)象和jQuery對(duì)象的轉(zhuǎn)換與區(qū)別。分享給大家供大家參考。具體分析如下:
jQuery Hello World程序:
<script type="text/javascript" src="xxx//jquery-x.y.z.js">
引入jQuery.存在兩個(gè)版本,jquery-x.y.z.min.js是精簡(jiǎn)壓縮版,不帶min的是開(kāi)發(fā)版,代碼中的注釋和縮進(jìn)等都被保留了.
注意路徑中的"/"需要轉(zhuǎn)義,即用"http://".
$()符號(hào)將DOM對(duì)象轉(zhuǎn)化為jQuery對(duì)象.
Hello World程序如下:
<head>
<title>Hello jQuery</title>
<script type="text/javascript" src="libs//jquery-1.11.2.js"></script>
<script type="text/javascript">
$(document).ready(function () {
alert("Hello World");
});
</script>
</head>
<body>
</body>
</html>
$(document).ready和window.onload的比較
首先看window.onload:
window.onload = sayWorld;
function sayHello() {
alert("Hello");
}
function sayWorld() {
alert("World");
}
后面的方法會(huì)覆蓋掉前面的方法,也即彈泡最后只顯示一個(gè),即World的那個(gè).
如果采用$(document).ready,則方法會(huì)串聯(lián)起來(lái),即先顯示Hello的alert,再顯示W(wǎng)orld的.
$(document).ready(sayWorld);
function sayHello() {
alert("Hello");
}
function sayWorld() {
alert("World");
}
這樣就可以關(guān)聯(lián)多個(gè)方法.
另一個(gè)很小的差別,就是ready方法的執(zhí)行會(huì)稍微靠前一點(diǎn).widow.onload會(huì)等待DOM準(zhǔn)備好,并且所有綁定結(jié)束,而ready只能DOM準(zhǔn)備好,其他工作可能還沒(méi)有做好.
實(shí)例:給每一個(gè)超鏈接對(duì)象附加onclick事件
首先,body中添加多個(gè)超鏈接對(duì)象:
<a href="#">test1</a><br>
<a href="#">test2</a><br>
<a href="#">test3</a><br>
<a href="#">test4</a>
</body>
要給每個(gè)對(duì)象添加onclick事件,可以有多種方法:
首先,可以在每個(gè)a標(biāo)簽里面寫(xiě)onclick屬性;
其次,可以利用window.onload添加一個(gè)方法,獲取所有的標(biāo)簽,統(tǒng)一添加事件,如下:
var myLinks = document.getElementsByTagName("a");
for(var i = 0; i < myLinks.length; ++i){
myLinks[i].onclick = function(){
alert("Hello link: " + i);
}
}
}
注意,這里我犯了一個(gè)錯(cuò)誤,我本來(lái)以為alert的數(shù)目會(huì)遞增,結(jié)果實(shí)際運(yùn)行的結(jié)果是每一個(gè)alert都是4.
這是因?yàn)?strong>js沒(méi)有塊級(jí)作用域,變量i引用的是for里的那個(gè),循環(huán)后變成了4.也即,onclick事件發(fā)生的時(shí)候才去取i的值,當(dāng)然都是4了.
下面用jQuery實(shí)現(xiàn)這一功能:
$("a").click(function () {
alert("Hello link from jQuery!");
});
});
jQuery中的$()符號(hào)會(huì)獲得頁(yè)面當(dāng)中的所有合適的元素.
所以上面的代碼隱含了遍歷的過(guò)程,給每一個(gè)元素都加上了事件處理函數(shù).
click方法是jQuery對(duì)象提供的方法.
onclick是DOM對(duì)象的屬性.
DOM里面的很多屬性到j(luò)Query里面就變成了方法.
DOM對(duì)象和jQuery對(duì)象之間的相互轉(zhuǎn)換與區(qū)別
看一個(gè)例子,首先加一個(gè)p標(biāo)簽:
先獲得一個(gè)DOM對(duì)象,然后將其轉(zhuǎn)換為一個(gè)jQuery對(duì)象:
//DOM object:
var pElement = document.getElementsByTagName("p")[0];
alert("DOM pElement: " + pElement.innerHTML);
//Convert DOM object to jQuery object:
var pElementjQuery = $(pElement);
alert("jQuery pElementjQuery: " + pElementjQuery.html());
也可以先獲得一個(gè)jQuery對(duì)象,再將其轉(zhuǎn)換為DOM對(duì)象:
//jQuery object array:
var clickMejQuery = $("#clickMe");
//Convert jQuery object to DOM object (2 ways):
//way 1:
var domClickMe1 = clickMejQuery[0];
alert("dom1: " + domClickMe1.innerHTML);
//way 2:
var domClickMe2 = clickMejQuery.get(0);
alert("dom2: " + domClickMe2.innerHTML);
再次注意:jQuery中$()獲取的是一個(gè)滿足條件的所有元素的數(shù)組.
小總結(jié):
$("字符串")會(huì)返回滿足條件的所有元素的一個(gè)數(shù)組,其中:
字符串以#開(kāi)頭,表示id;
字符串以.開(kāi)頭,表示CSS的class名;
若非以上兩種情況,則改字符串表示標(biāo)簽名.
$(DOM對(duì)象)可以得到一個(gè)jQuery對(duì)象.
希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。
- jquery對(duì)象和DOM對(duì)象的任意相互轉(zhuǎn)換
- jQuery對(duì)象與DOM對(duì)象之間的相互轉(zhuǎn)換
- jQuery對(duì)象和DOM對(duì)象之間相互轉(zhuǎn)換的方法介紹
- Jquery對(duì)象和Dom對(duì)象的區(qū)別分析
- jquery對(duì)象和javascript對(duì)象即DOM對(duì)象相互轉(zhuǎn)換
- jquery對(duì)象和DOM對(duì)象的區(qū)別介紹
- jQuery學(xué)習(xí)筆記之DOM對(duì)象和jQuery對(duì)象
- jQuery對(duì)象和DOM對(duì)象使用說(shuō)明
- jQuery對(duì)象與DOM對(duì)象之間的轉(zhuǎn)換方法
- jQuery對(duì)象和DOM對(duì)象的相互轉(zhuǎn)化實(shí)現(xiàn)代碼
- jQuery對(duì)象和DOM對(duì)象相互轉(zhuǎn)化
- jQuery對(duì)象與DOM對(duì)象轉(zhuǎn)換方法詳解
相關(guān)文章
jquery.mobile 共同布局遇到的問(wèn)題小結(jié)
這篇文章主要介紹了jquery.mobile 共同布局遇到的問(wèn)題小結(jié),需要的朋友可以參考下2015-02-02ajax頁(yè)面無(wú)刷新 IE下遭遇Ajax緩存導(dǎo)致數(shù)據(jù)不更新的問(wèn)題
在做ajax頁(yè)面無(wú)刷新添加的時(shí)候,IE下遭遇Ajax緩存,因?yàn)閯傞_(kāi)始并不知道IE有這個(gè)壞毛病,折騰好久,終于解決問(wèn)題,曬出來(lái)和大家分享,希望可以幫助你們2012-12-12通過(guò)jquery獲取上傳文件名稱、類型和大小的實(shí)現(xiàn)代碼
這篇文章主要介紹了在文件上傳到服務(wù)器之前,我們可以通過(guò)jquery來(lái)獲取上傳文件的名稱,類型和尺寸大小,需要的朋友可以參考下2018-04-04jquery實(shí)現(xiàn)不同大小瀏覽器使用不同的css樣式表的方法
這篇文章主要介紹了jquery實(shí)現(xiàn)不同大小瀏覽器使用不同的css樣式表的方法,需要的朋友可以參考下2014-04-04jquery亂碼與contentType屬性設(shè)置問(wèn)題解決方案
讓人頭痛的Jquery亂碼問(wèn)題。其實(shí)這方面文章已經(jīng)很多了,但全面解決各種問(wèn)題的很少,今天總結(jié)一下,方便自己也方便大家,感興趣的朋友可以了解下哦2013-01-01easyui combotree加載靜態(tài)數(shù)據(jù)問(wèn)題(選不上)解決方法
這篇文章主要介紹了easyui combotree加載靜態(tài)數(shù)據(jù)問(wèn)題,選不上)2016-12-12