国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery之DOM對象和jQuery對象的轉(zhuǎn)換與區(qū)別分析

2019-11-20 13:28:14
字體:
供稿:網(wǎng)友

本文實例分析了DOM對象和jQuery對象的轉(zhuǎn)換與區(qū)別。分享給大家供大家參考。具體分析如下:

jQuery Hello World程序:

<script type="text/javascript" src="xxx//jquery-x.y.z.js">
引入jQuery.存在兩個版本,jquery-x.y.z.min.js是精簡壓縮版,不帶min的是開發(fā)版,代碼中的注釋和縮進等都被保留了.

注意路徑中的"/"需要轉(zhuǎn)義,即用"http://".

$()符號將DOM對象轉(zhuǎn)化為jQuery對象.
Hello World程序如下:

復(fù)制代碼 代碼如下:
<html>
<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:

復(fù)制代碼 代碼如下:
window.onload = sayHello;
window.onload = sayWorld;
 
function sayHello() {
    alert("Hello");
}
function sayWorld() {
    alert("World");
}

后面的方法會覆蓋掉前面的方法,也即彈泡最后只顯示一個,即World的那個.

如果采用$(document).ready,則方法會串聯(lián)起來,即先顯示Hello的alert,再顯示W(wǎng)orld的.

復(fù)制代碼 代碼如下:
$(document).ready(sayHello);
$(document).ready(sayWorld);
 
function sayHello() {
    alert("Hello");
}
function sayWorld() {
    alert("World");
}

這樣就可以關(guān)聯(lián)多個方法.
另一個很小的差別,就是ready方法的執(zhí)行會稍微靠前一點.widow.onload會等待DOM準備好,并且所有綁定結(jié)束,而ready只能DOM準備好,其他工作可能還沒有做好.

實例:給每一個超鏈接對象附加onclick事件

首先,body中添加多個超鏈接對象:

復(fù)制代碼 代碼如下:
<body>
    <a href="#">test1</a><br>
    <a href="#">test2</a><br>
    <a href="#">test3</a><br>
    <a href="#">test4</a>
</body>


要給每個對象添加onclick事件,可以有多種方法:
首先,可以在每個a標簽里面寫onclick屬性;
其次,可以利用window.onload添加一個方法,獲取所有的標簽,統(tǒng)一添加事件,如下:
復(fù)制代碼 代碼如下:
window.onload = function () {
    var myLinks = document.getElementsByTagName("a");
    for(var i = 0; i < myLinks.length; ++i){
        myLinks[i].onclick = function(){
            alert("Hello link: " + i);
        }
    }
}

注意,這里我犯了一個錯誤,我本來以為alert的數(shù)目會遞增,結(jié)果實際運行的結(jié)果是每一個alert都是4.
這是因為js沒有塊級作用域,變量i引用的是for里的那個,循環(huán)后變成了4.也即,onclick事件發(fā)生的時候才去取i的值,當然都是4了.
 
下面用jQuery實現(xiàn)這一功能:

復(fù)制代碼 代碼如下:
$(document).ready(function () {
    $("a").click(function () {
        alert("Hello link from jQuery!");
    });
});

jQuery中的$()符號會獲得頁面當中的所有合適的元素.
所以上面的代碼隱含了遍歷的過程,給每一個元素都加上了事件處理函數(shù).
click方法是jQuery對象提供的方法.
onclick是DOM對象的屬性.
DOM里面的很多屬性到j(luò)Query里面就變成了方法.

DOM對象和jQuery對象之間的相互轉(zhuǎn)換與區(qū)別

看一個例子,首先加一個p標簽:

復(fù)制代碼 代碼如下:
<p id="clickMe">Click Me!</p>

先獲得一個DOM對象,然后將其轉(zhuǎn)換為一個jQuery對象:

復(fù)制代碼 代碼如下:
//Part 1: DOM --> jQuery
//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());

也可以先獲得一個jQuery對象,再將其轉(zhuǎn)換為DOM對象:

復(fù)制代碼 代碼如下:
//Part 2: jQuery --> DOM
//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中$()獲取的是一個滿足條件的所有元素的數(shù)組.

小總結(jié):

$("字符串")會返回滿足條件的所有元素的一個數(shù)組,其中:
字符串以#開頭,表示id;
字符串以.開頭,表示CSS的class名;
若非以上兩種情況,則改字符串表示標簽名.

$(DOM對象)可以得到一個jQuery對象.

希望本文所述對大家的jQuery程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 萍乡市| 乐东| 北宁市| 西贡区| 中西区| 盐山县| 南投市| 孟津县| 星座| 泰州市| 平顺县| 隆昌县| 穆棱市| 玛纳斯县| 罗田县| 临湘市| 普陀区| 德兴市| 七台河市| 壶关县| 新郑市| 绥中县| 黄平县| 溧水县| 绵阳市| 裕民县| 河东区| 明溪县| 四川省| 万山特区| 怀仁县| 平安县| 锦屏县| 白朗县| 远安县| 油尖旺区| 呼玛县| 博爱县| 佛教| 昌图县| 石楼县|