成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

jQuery(一)-- 初步了解

quietin / 1995人閱讀

摘要:一初步了解介紹由創(chuàng)建于年一月的開源項(xiàng)目,憑借著跨平臺(tái)的兼容性,簡(jiǎn)潔的語(yǔ)法,極大的簡(jiǎn)化了人員遍歷文檔,操作,處理事件,執(zhí)行動(dòng)畫,和開發(fā)的操作。只建立一個(gè)名為的對(duì)象。對(duì)發(fā)生在同一個(gè)對(duì)象上的一組動(dòng)作,可以直接連寫無需重復(fù)獲取對(duì)象。

jQuery(一)-- 初步了解 jQuery介紹
由John Resig創(chuàng)建于2006年一月的開源項(xiàng)目,jQuery憑借著跨平臺(tái)的兼容性,簡(jiǎn)潔的語(yǔ)法,極大的簡(jiǎn)化了JavaScript人員遍歷HTML文檔,操作DOM,處理事件,執(zhí)行動(dòng)畫,和開發(fā)Ajax的操作。
jQuery優(yōu)點(diǎn)

輕量級(jí)。采用Uglifys壓縮后保持再30kb左右。

擁有強(qiáng)大的選擇器。jQuery允許開發(fā)者使用CSS1到CSS3幾乎所有選擇器,以及jQuery獨(dú)創(chuàng)的高級(jí)而復(fù)雜的選擇器。

出色的DOM封裝操作。jQuery封裝了大量常用的DOM操作,使開發(fā)者再編寫DOM操作相關(guān)程序的時(shí)候能夠得心應(yīng)手。

可靠的事件處理機(jī)制。jQuery的事件處理機(jī)制吸收了Javascript專家編寫的Dean Edwards編寫的事件處理函數(shù)的精華,使得jQuery再處理事件綁定的時(shí)候相當(dāng)可靠。在預(yù)留退路(graceful degradation)、循序漸進(jìn)以及非入侵式(Unobtrusive)編程思想方面,jQuery也做得非常不錯(cuò)。

完善的Ajax。jQuery將所有的ajax操作封裝到一個(gè)函數(shù)$.ajax()里,使得開發(fā)者處理Ajax的時(shí)候能夠?qū)P奶幚順I(yè)務(wù)邏輯而無需關(guān)心復(fù)雜的瀏覽器兼容性和XMLHttpRequest對(duì)象的創(chuàng)建和使用問題。

不污染頂級(jí)變量。jQuery只建立一個(gè)名為jQuery的對(duì)象。其所有的函數(shù)方法都在這個(gè)對(duì)象之下。其別名$也可以隨時(shí)交出控制權(quán),絕對(duì)不會(huì)污染其他的對(duì)象。使得jQuery庫(kù)可以與其他Js庫(kù)共存

出色的瀏覽器兼容性

鏈?zhǔn)讲僮鞣绞健?duì)發(fā)生在同一個(gè)jQuery對(duì)象上的一組動(dòng)作,可以直接連寫無需重復(fù)獲取對(duì)象。

隱式迭代。當(dāng)用jQuery找到帶有.myClass類的全部元素時(shí),無需循環(huán)遍歷每一個(gè)返回的元素。

行為層與結(jié)構(gòu)層的分離。開發(fā)者可以使用jQuery選擇器選中元素,然后直接給元素添加事件。簡(jiǎn)單的來說就是可以在js中操作html。

豐富的插件支持。

完善的文檔。

開源

jQuery使用
下載
可以通過node.js自帶的包管理器npm或者bower等包管理器下載,也可以通過官網(wǎng)下載

npm下載/cnpm下載/bower下載

npm i jquery/cnpm i jquery/bower i jquery

官網(wǎng)下載

https://code.jquery.com/jquery-3.4.1.min.js,另存為Js文件即可,也可以在線引用

第一個(gè)jQuery程序

開始之前需要知道一點(diǎn),在jQuery庫(kù)中,$就是jQuery的一個(gè)簡(jiǎn)寫形式,例如$("#foo")jQuery("#foo")是等價(jià)的,$.ajaxjQuery.ajax是等價(jià)的。

//引入jQuery

其中$(document).ready();這段代碼類似于window.onload的作用,但是其中有些差別

window.onload $(document).ready()
執(zhí)行時(shí)機(jī) 必須等待網(wǎng)頁(yè)中所有的內(nèi)容加載完畢后(包括圖片)才能執(zhí)行 網(wǎng)頁(yè)中所有DOM結(jié)構(gòu)繪制完畢后就執(zhí)行,可能DOM元素關(guān)聯(lián)的東西并沒有加載完
編寫個(gè)數(shù) 不能同時(shí)編寫多個(gè),以下代碼無法正確執(zhí)行:window.onload = function(){alert("test")};window.onload = function(){alert("test2");}結(jié)果只會(huì)輸出“test2” 能同時(shí)編寫多個(gè),以下代碼能夠正確執(zhí)行:$(document).ready(function(){alert("hello world");}) $(document).ready(function(){alert("hello again")};);結(jié)果兩次都輸出
簡(jiǎn)化寫法 $(document).ready(function(){//....};)可以簡(jiǎn)寫為$(function(){});
鏈?zhǔn)酱a風(fēng)格

我的理解是通過.運(yùn)算符來鏈接層級(jí)操作,類似于Js原生的document.getElementById("#app").value這樣的。

代碼規(guī)范

(1)對(duì)于同一個(gè)對(duì)象不超過三個(gè)操作的,可以直接寫成一行。

``$("li").show().unbind("click");

(2)對(duì)于同一個(gè)對(duì)象不超過三個(gè)操作的,建議每行寫一個(gè)操作

$(this).removeClass("mouseout")
       .addClass("mouseout")
       .stop()
       .fadeTo("fast",0.6)
       .fadeTo("fast",1)
       .unbind("click")

(3)對(duì)于多個(gè)對(duì)象的少量操作,可以每個(gè)對(duì)象寫一行,如果涉及子元素,可以考慮適當(dāng)?shù)乜s進(jìn),例如上面提到的代碼。

$(this).addClass("highlight").children("li").show().end()
---------------------------------------------------------
$(this).addClass("highlight")
       .children("li").shiw().end()
注釋的重要性

$("#table > tbody > tr:has(td:has(:checkbox:enabled))").css("background","red");

這一行代碼就算是精通jQuery的人也不一定能一眼就看出作用,通過有意義的注釋可以提高開發(fā)效率

//在一個(gè)id為table的表格的tbody中,如果每行的一列中的checkbox沒有被禁用,則把這行的背景設(shè)為紅色
$("#table > tbody > tr:has(td:has(:checkbox:enabled))").css("background","red");
jQuery對(duì)象和DOM對(duì)象
DOM對(duì)象(Document Object Model,文檔對(duì)象模型)

每一份DOM都可以表示成一顆樹,樹的內(nèi)容為html代碼的標(biāo)簽元素,按層級(jí)表示


    
        
    
    
        
             //...   
        

//...

。。。

jQuery對(duì)象

jQuery對(duì)象就是通過jQuery包裝DOM對(duì)象后產(chǎn)生的對(duì)象。

//通過獲取id為foo的元素內(nèi)的html代碼。.html()是jQuery里的方法

DOM對(duì)象操作 jQuery對(duì)象操作
document.getElementById("foo").innerHTML $("#foo").html()

注意

在jQuery對(duì)象中無法使用DOM對(duì)象的任何方法。,DOM對(duì)象中也不能使用任何jQuery方法。

像DOM對(duì)象有innerHTML方法,但是jQuery中沒有;jQuery對(duì)象中有html()方法,但是DOM中沒有。

jQuery對(duì)象和DOM對(duì)象的互相轉(zhuǎn)換

在討論此之前規(guī)定好代碼規(guī)范:

如果獲取的是jQuery對(duì)象,那么在變量前面加上$

var $variable = jquery對(duì)象

如果獲取的是DOM對(duì)象,

var variable = DOM對(duì)象

jQuery對(duì)象轉(zhuǎn)成DOM對(duì)象

jQuery 對(duì)象不能使用DOM 中的方法,但如果對(duì) jQuery 對(duì)象所提供的方法不熟悉,或者 jQuery 沒有封裝想要的方法,不得不使用 DOM 對(duì)象的時(shí)候,有以下兩種處理方法。

jQuery 提供了兩種方法將一個(gè)jQuery對(duì)象轉(zhuǎn)換成 DOM 對(duì)象,即[index]get(index)

案例html代碼:

(1)jQuery對(duì)象是一個(gè)類似于數(shù)組的對(duì)象,可以通過[index]的方法得到相應(yīng)的DOM對(duì)象

var $cr = $("#cr");   //jquery 對(duì)象
var cr = $cr[0];      //DOM 對(duì)象

alert(cr.checked);    //檢測(cè)這個(gè)checkbox是否被選中

(2)另一種方法是jQuery 本身提供的,通過get(index)方法得到相應(yīng)的 DOM 對(duì)象

var $cr = $("#cr");   //jquery 對(duì)象
var cr = $cr.get(0);      //DOM 對(duì)象

alert(cr.checked);    //檢測(cè)這個(gè)checkbox是否被選中
DOM對(duì)象轉(zhuǎn)成jQuery對(duì)象

對(duì)于一個(gè) DOM 對(duì)象,只需要用$()把DOM對(duì)象包裝起來,就可以獲得一個(gè)jQuery對(duì)象了。方式為$(DOM對(duì)象)

var cr = document.getElemntById("cr");   //DOM 對(duì)象
var $cr = $(cr);                         //jQuery 對(duì)象

轉(zhuǎn)換后,可以任意使用jQuery 中的方法。

通過以上方法,可以任意相互轉(zhuǎn)換jQuery 兌現(xiàn)和 DOM 對(duì)象。

范例代碼)

解決jQuery庫(kù)與其他庫(kù)的沖突

在jQuery 庫(kù)中,幾乎所有的插件都被限制在它的命名空間里 -- jQuery。通常,全局對(duì)象都被很厚地儲(chǔ)存在jQuery 命名空間里,因此當(dāng)jQuery 庫(kù)和其他JavaScript 庫(kù)一起使用時(shí)不會(huì)引起沖突。

默認(rèn)情況下,jQuery用 -- $作為快捷方式。

一共有三種方式,其中第三種有兩種方法

方式一:移交“$”使用權(quán)

jQuery.noConflict();    //將變量$ 的控制權(quán)交給prototype.js

/**
                 * 在該函數(shù)內(nèi)就可以用“jQuery”代替字符“$”使用jquery
                 */
jQuery(function(){//使用jQuery
    jQuery("p").click(function(){
        alert(jQuery(this).text());
    })
})
$("pp").style.display = "none"; //使用pototype.js隱藏元素

方式二:起別名

var $J = jQuery.noConflict();    //自定義快捷方式
            
            /**
             * 同樣的,在這里可以使用“$J”代替字符“$”使用jquery
             */
            $J(function(){
                $J("p").click(function(){
                    alert($J(this).text());
                })
            })
            $("pp").style.display = "none";

方式三:既可以使用字符$,又不用起別名

其一:移交使用權(quán)時(shí)傳參,之后就可以在jQuery方法內(nèi)使用字符$而不用別名

jQuery.noConflict();
//使用jQuery設(shè)定頁(yè)面加載時(shí)執(zhí)行的函數(shù)傳參
jQuery(function($){
    $("p").click(function(){
        alert($(this).text());
    })
});
$("pp").style.display = "none";

其二:類似于一,不過是使用匿名函數(shù)

jQuery.noConflict();
//匿名函數(shù)內(nèi)部的 $ 均為jQuery
(function($){
    $("p").click(function(){
        alert($(this).text());
    })
})
$("pp").style.display = "none";

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/106673.html

相關(guān)文章

  • 初步學(xué)習(xí) jQuery 核心 API

    摘要:進(jìn)一步了解類數(shù)組對(duì)象可以看這篇文章對(duì)象的構(gòu)建和分離構(gòu)造器然后我們回來看看,讓我們悲傷的代碼。。。然后又通過下面的語(yǔ)句,將兩個(gè)獨(dú)立的構(gòu)造器關(guān)聯(lián)起來了。 背景 不造輪子的程序員不是好程序員,所以我們今天嘗試造一下輪子。今天的主角是 jQuery ,雖然現(xiàn)在市面上已被 React,Angular,Vue 等擠的容不下它的位置,但是它的簡(jiǎn)單 API 設(shè)計(jì)依然優(yōu)秀,值得學(xué)習(xí)和體會(huì)。 任務(wù) 今天造...

    張巨偉 評(píng)論0 收藏0
  • jointJS系列之:jointJS的的初步使用

    摘要:由于是基于的,因此對(duì)有一定的了解會(huì)對(duì)的理解和使用有較大幫助。由于是基于的,因此有視圖和模型的概念。掛載的元素關(guān)聯(lián)聲明的元素的概念,就是圖形顯示的主體,可以有各種不同的形狀,預(yù)設(shè)有常用的矩形橢圓平行四邊形等。 一、jointJS簡(jiǎn)介 jointJS是一個(gè)基于svg的圖形化工具庫(kù),在畫布上畫出支持拖動(dòng)的svg圖形,而且可以導(dǎo)出JSON,也能通過JSON配置導(dǎo)入直接生成圖形。 可以基于joi...

    amuqiao 評(píng)論0 收藏0
  • 初步講解JS中的callback回調(diào)原理

    摘要:大部分人都知道回調(diào)函數(shù)在中被發(fā)揮的淋漓盡致,然而新手往往很少知道回調(diào)函數(shù)原理,所以接下來我們?nèi)砸赃@個(gè)栗子為代表探討回調(diào)函數(shù)。這就是對(duì)回調(diào)函數(shù)的簡(jiǎn)單講解,萌新程序員,歡迎糾錯(cuò) JS的異步執(zhí)行機(jī)制 什么是異步執(zhí)行 為了提高Javascript代碼的運(yùn)行效率,JS對(duì)于部分函數(shù)方法采用了異步調(diào)用機(jī)制(如Ajax的操作)。異步執(zhí)行的函數(shù)方法的執(zhí)行并非為一個(gè)隊(duì)列挨個(gè)執(zhí)行的,而是相互獨(dú)立,同時(shí)調(diào)用執(zhí)...

    Simon_Zhou 評(píng)論0 收藏0
  • 學(xué)Java編程需要注意的地方

    摘要:學(xué)編程真的不是一件容易的事不管你多喜歡或是多會(huì)編程,在學(xué)習(xí)和解決問題上總會(huì)碰到障礙。熟練掌握核心內(nèi)容,特別是和多線程初步具備面向?qū)ο笤O(shè)計(jì)和編程的能力掌握基本的優(yōu)化策略。   學(xué)Java編程真的不是一件容易的事,不管你多喜歡或是多會(huì)Java編程,在學(xué)習(xí)和解決問題上總會(huì)碰到障礙。工作的時(shí)間越久就越能明白這個(gè)道理。不過這倒是一個(gè)讓人進(jìn)步的機(jī)會(huì),因?yàn)槟阋恢辈粩嗟膶W(xué)習(xí)才能很好的解決你面前的難題...

    leanxi 評(píng)論0 收藏0
  • javascript 中踩過的坑 --(function(){})()

    摘要:在這一節(jié),我們碰到的片段是一組立即運(yùn)行的匿名函數(shù)。匿名函數(shù)的調(diào)用要調(diào)用一個(gè)函數(shù),我們必須要有方法定位它,引用它。那么很顯然,沒有任何實(shí)現(xiàn)的匿名函數(shù)不可能應(yīng)用了閉包特性。 代碼如下: (function(){ //這里忽略jQuery所有實(shí)現(xiàn) })(); (function(){ //這里忽略jQuery所有實(shí)現(xiàn) })(); 半年前初次接觸jQuery的時(shí)候,我也像其他人一樣很興...

    vpants 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<