jQuery這個(gè)類庫(kù)最為核心重要的功能就是DOM操作了。DOM是由w3c制定的為HTML和XML文檔編寫(xiě)的應(yīng)用程序接口,全稱叫做W3C DOM,它使得開(kāi)發(fā)者能夠修改html和xml的內(nèi)容和展現(xiàn)方式,將網(wǎng)頁(yè)與腳本或編程語(yǔ)言連接起來(lái)。
但是標(biāo)準(zhǔn)在各個(gè)瀏覽器中的實(shí)現(xiàn)是不一樣的,同時(shí)DOM發(fā)展也是循序漸進(jìn)的,不斷地增加新的api,因此各個(gè)瀏覽器乃至各個(gè)版本對(duì)于DOM實(shí)現(xiàn)的也是不一樣的。jQuery這個(gè)類庫(kù)最為核心的功能,就是能夠?qū)⒏鱾€(gè)主流瀏覽器的主流版本的DOM處理方法統(tǒng)一起來(lái),讓開(kāi)發(fā)人員不必去過(guò)分了解各個(gè)瀏覽器對(duì)于DOM處理的細(xì)節(jié)與差異,寫(xiě)一次代碼就能在各個(gè)瀏覽器中運(yùn)行,并且取得相同的效果。
jQuery這個(gè)框架目前的流行程度在下降,除了新的理論新的框架的興起外,一個(gè)主要原因就是各個(gè)主流瀏覽器對(duì)于DOM處理的差異正在縮小,DOM處理差異大的瀏覽器日益趨于被淘汰,所以jQuery對(duì)我們而言僅是一個(gè)封裝了DOM處理的工具,存在的意義也日趨下降。但是從mdn的Element預(yù)定義的幾個(gè)api就能發(fā)現(xiàn),新增加的api都是在模仿jQuery的,可見(jiàn)jQuery的api是多么經(jīng)典。
阮一峰老師曾經(jīng)有一篇jQuery-free化的文章,里面介紹了很多不使用jQuery也可以高效開(kāi)發(fā)的技巧,這些技巧都是仿照jQuery,并在深入了解了DOM基礎(chǔ)上封裝起來(lái)的。查看jQuery對(duì)于DOM操作的源碼,不但會(huì)了解到標(biāo)準(zhǔn)的DOM操作方法,學(xué)習(xí)DOM的api的優(yōu)化,還能學(xué)習(xí)到關(guān)于瀏覽器兼容的一些“黑魔法”、“黑科技”。
jQuery封裝的DOM大致可以分為3大類:DOM操作、DOM遍歷、DOM事件,篇幅有限,我們先著重看一看DOM操作相關(guān)的jQuery的源碼。下面我們就一起看看jQuery的DOM操作相