JavaScript和HTML DOM的區(qū)別與聯(lián)系及Javascript和DOM的關(guān)系
區(qū)別:
javascript
JavaScript 是因特網(wǎng)上最流行的瀏覽器腳本語(yǔ)言。很容易使用!你一定會(huì)喜歡它的!
JavaScript 被數(shù)百萬(wàn)計(jì)的網(wǎng)頁(yè)用來(lái)改進(jìn)設(shè)計(jì)、驗(yàn)證表單、檢測(cè)瀏覽器、創(chuàng)建cookies,以及更多的應(yīng)用。
HTML DOM
HTML DOM 是 W3C 標(biāo)準(zhǔn)(是 HTML 文檔對(duì)象模型的英文縮寫(xiě),Document Object Model for HTML)。
HTML DOM 定義了用于 HTML 的一系列標(biāo)準(zhǔn)的對(duì)象,以及訪問(wèn)和處理 HTML 文檔的標(biāo)準(zhǔn)方法。
通過(guò) DOM,可以訪問(wèn)所有的 HTML 元素,連同它們所包含的文本和屬性??梢詫?duì)其中的內(nèi)容進(jìn)行修改和刪除,同時(shí)也可以創(chuàng)建新的元素。
HTML DOM 獨(dú)立于平臺(tái)和編程語(yǔ)言。它可被任何編程語(yǔ)言諸如 Java、JavaScript 和 VBScript 使用。
聯(lián)系:
通過(guò) JavaScript,您可以重構(gòu)整個(gè) HTML 文檔。您可以添加、移除、改變或重排頁(yè)面上的項(xiàng)目。
要改變頁(yè)面的某個(gè)東西,JavaScript 就需要獲得對(duì) HTML 文檔中所有元素進(jìn)行訪問(wèn)的入口。這個(gè)入口,連同對(duì) HTML 元素進(jìn)行添加、移動(dòng)、改變或移除的方法和屬性,都是通過(guò)文檔對(duì)象模型來(lái)獲得的(DOM)。
Javascript主要是利用HTML DOM去獲得、改變、創(chuàng)建HTML元素,從而達(dá)到美化頁(yè)面、操作頁(yè)面元素的目標(biāo)。因此,在Javascript中最常見(jiàn)的就是各種各樣的HTML DOM元素以及它們各自的屬性。除了這些DOM元素外,Javascript有自己的對(duì)象,例如數(shù)組。
簡(jiǎn)單說(shuō),可以認(rèn)為Javascript主要是操縱HTML DOM。兩者是不一樣的。
Javascript是語(yǔ)言,DOM是可以在各種語(yǔ)言中(不僅js,php也有的)動(dòng)態(tài)修改文檔的模型。
下面單獨(dú)拉出JavaScript與DOM的關(guān)系給大家詳解
JavaScript與瀏覽器的工作
1.瀏覽器獲取并加載你的頁(yè)面,從上至下解析它的內(nèi)容。
遇到JavaScript時(shí),瀏覽器會(huì)解析代碼,檢查它的正確性,然后執(zhí)行代碼。
瀏覽器還會(huì)建立一個(gè)HTML頁(yè)面的內(nèi)部模型(DOM)。
2.JavaScript繼續(xù)執(zhí)行,使用DOM檢查頁(yè)面、完成修改、從頁(yè)面接受事件,或者要求瀏覽器從Web服務(wù)器獲取其它數(shù)據(jù)。
JavaScript如何與頁(yè)面交互?
JavaScript是代碼,HTML是標(biāo)記,完全不同的東西
怎么讓它們交互呢?
答案是使用文檔對(duì)象模型(Docunment Object Model,簡(jiǎn)稱DOM)。
DOM的妙處在于:它能夠在所有瀏覽器上提供一種一致的方式,通過(guò)代碼訪問(wèn)HTML的結(jié)構(gòu)和內(nèi)容。
1、在瀏覽器加載一個(gè)頁(yè)面時(shí),瀏覽器會(huì)解析HTML,并創(chuàng)建文檔的一個(gè)內(nèi)部模型,其中包含HTML標(biāo)記的所有元素。
2、JavaScript可以與DOM交互(JavaScript使用DOM創(chuàng)建或刪除元素等等)
document是一個(gè)反映HTML的對(duì)象,通過(guò)調(diào)用document的方法改變DOM的狀態(tài),也就是改變HTML頁(yè)面
3、JavaScript修改了DOM時(shí),瀏覽器會(huì)隨著動(dòng)態(tài)更新頁(yè)面。
自制DOM
材料:格式正確的HTML5頁(yè)面,WEB瀏覽器
做法:
1、在最上面創(chuàng)建一個(gè)document節(jié)點(diǎn)
2、取HTML頁(yè)面的最頂層元素,在這里就是<HTML>元素,把它作為document的子節(jié)點(diǎn)加到DOM中
3、對(duì)于當(dāng)前元素中嵌套的每一個(gè)元素,將該元素作為當(dāng)前元素的子節(jié)點(diǎn)增加到DOM
4、對(duì)于剛增加的元素,執(zhí)行第三步,重復(fù)工作,直到處理完所有元素
HTML頁(yè)面如下
<!DOCTYPE html> <html lang="helloworld"> <head> <title>DOM</title> <meta cherset="utf-"> <script src="dom.js" ></script> </head> <body> <h>My Dom</h> <div id="entry"> <h>hello</h> <p> Today, I am making a dom!!! </p> </div> </body> </html>
得到的DOM如下圖
- JSP基于dom解析xml實(shí)例詳解
- JavaScript對(duì)HTML DOM使用EventListener進(jìn)行操作
- JavaScript簡(jiǎn)單遍歷DOM對(duì)象所有屬性的實(shí)現(xiàn)方法
- 詳解javascript跨瀏覽器事件處理程序
- JavaScript實(shí)現(xiàn)為指定對(duì)象添加多個(gè)事件處理程序的方法
- 輕松創(chuàng)建nodejs服務(wù)器(5):事件處理程序
- JS注冊(cè)/移除事件處理程序(ExtJS應(yīng)用程序設(shè)計(jì)實(shí)戰(zhàn))
- 淺談Javascript事件處理程序的幾種方式
- js使用函數(shù)綁定技術(shù)改變事件處理程序的作用域
- JavaScript事件處理程序(事件偵聽(tīng)器)
- JavaScript Event學(xué)習(xí)第三章 早期的事件處理程序
- JavaScript將DOM事件處理程序封裝為event.js 出現(xiàn)的低級(jí)錯(cuò)誤問(wèn)題
相關(guān)文章
Iframe自適應(yīng)高度絕對(duì)好使的代碼 兼容IE,遨游,火狐
Iframe自適應(yīng)高度絕對(duì)好使的代碼IE,遨游,火狐都兼容,需要的朋友可以參考下。2011-01-01javascript結(jié)合CSS實(shí)現(xiàn)蘋(píng)果開(kāi)關(guān)按鈕特效
這篇文章主要介紹了javascript結(jié)合CSS實(shí)現(xiàn)蘋(píng)果開(kāi)關(guān)按鈕特效的方法以及全部代碼,效果非常不錯(cuò),兼容性也很好,有需要的小伙伴自己參考下2015-04-04詳解JavaScript如何實(shí)現(xiàn)一個(gè)簡(jiǎn)易的Promise對(duì)象
Promise對(duì)象的作用將異步操作以同步操作的流程表達(dá)出來(lái),避免層層嵌套的回調(diào)函數(shù),而且Promise提供了統(tǒng)一的接口,使得控制異步操作更加容易。本文介紹了如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Promise對(duì)象,需要的可以參考一下2022-11-11javascript實(shí)現(xiàn)一個(gè)網(wǎng)頁(yè)加載進(jìn)度loading
本篇文章主要介紹了javascript實(shí)現(xiàn)一個(gè)頁(yè)面加載進(jìn)度loading的具體步驟以及示例代碼,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01JS 清除字符串?dāng)?shù)組中,重復(fù)元素的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇JS 清除字符串?dāng)?shù)組中,重復(fù)元素的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05JS+CSS實(shí)現(xiàn)仿雅虎另類滑動(dòng)門(mén)切換效果
這篇文章主要介紹了JS+CSS實(shí)現(xiàn)仿雅虎另類滑動(dòng)門(mén)切換效果,涉及JavaScript響應(yīng)鼠標(biāo)事件及針對(duì)頁(yè)面元素的嵌套循環(huán)遍歷技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10鼠標(biāo)拖拽移動(dòng)子窗體的JS實(shí)現(xiàn)
這篇文章主要介紹了鼠標(biāo)拖拽移動(dòng)子窗體的JS實(shí)現(xiàn),需要的朋友可以參考下2014-02-02three.js開(kāi)發(fā)3d地圖的實(shí)現(xiàn)示例
本文主要介紹了three.js開(kāi)發(fā)3d地圖的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07JavaScript設(shè)置獲取和設(shè)置屬性的方法
這篇文章主要介紹了JavaScript設(shè)置獲取和設(shè)置屬性的方法,學(xué)會(huì)使用getAttribute、setAttribute的用法,需要的朋友可以參考下2015-03-03