發布時間: 2018-08-24 17:52:00
?三.對象互換
jQuery 對象雖然是 jQuery 庫獨有的對象,但它也是通過 JavaScript 進行封裝而來的??梢灾苯虞敵鰜淼玫剿男畔?。
alert($); //jQuery 對象方法內部
alert($());
// jQuery 對象返回的對象object,還是 jQuery
alert($('#box'));
//包裹 ID
元素返回對象,還是 jQuery
alert($(“#box”)).css(“color”,”red”);
//返回jQuery對象
從上面三組代碼發現:只要使用了包裹后,最終返回的都是 jQuery 對象。這樣的好處顯而易見,就是可以連綴處理。
alert($(“#box”)).css(“color”,”red”).css(“font-size”,”20px”);
但有時,也需要返回原生的 DOM 對象,比如:
alert(document.getElementById('box'));
//[object HTMLDivElement]
jQuery 想要達到獲取原生的 DOM 對象,可以這么處理:
alert($('#box').get(0));
//ID 元素的第一個原生 DOM,0下標為第一個元素
從上面
get(0),這里的索引看出,jQuery 是可以進行批量處理 DOM 的,這樣可以在很多需要循環遍歷的處理上更加得心應手。
四.解決jQuery和其他庫的沖突
當一個項目中引入多個第三方庫的時候,由于沒有命名空間的約束(命名空間就好比同一個目錄下的文件夾一樣,名字相同就會產生沖突),庫與庫之間發生沖突在所難免。
那么,既然有沖突的問題,為什么要使用多個庫呢?原因是 jQuery 只不過是 DOM 操作為主的庫,方便日常 Web 開發。但有時,項目有更多特殊的功能需要引入其他的庫,比如用戶界面 UI 方面的庫,游戲引擎方面的庫等等一系列。
而很多庫,比如 prototype、還有JavaScript 的 Base 庫,都使用“$”作為基準起始符,如果想和 jQuery 共容有兩種方法:
1.將 jQuery.js 庫在 Base.js 庫之前引入,那么“$”的所有權就歸 Base 庫所有,而 jQuery 可以直接用 jQuery 對象調用,或者創建一個“$$”符給 jQuery 使用。
var
$$ = jQuery; //創建一個$$的 jQuery對象
jQuery
$(function () { //這是
Base 的$
$
alert($('#box').ge(0)); //這是 Base 的 $
$ alert($$('#box').get()); //這是 jQuery 的$$
});
2.如果將 jQuery.js 庫在 Base.js 庫之后引入,那么“$”的所有權就歸 jQuery 庫所有,而 Base 庫將會沖突而失去作用。這里,jQuery 提供了一個方法:
jQuery.noConflict();
//將$符所有權剔除
var
$$ = jQuery;
$(function
() {
alert($('#box').ge(0));
alert($$('#box').get());
});