亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

JavaScript DOM

Nekron / 2928人閱讀

摘要:但上述兩個(gè)情況中都是同一份文檔。提示對(duì)象是對(duì)象的一部分,可通過(guò)屬性對(duì)其進(jìn)行訪(fǎng)問(wèn)。返回包含指定節(jié)點(diǎn)的子節(jié)點(diǎn)的集合,該集合為即時(shí)更新的集合。對(duì)象在中,對(duì)象表示元素屬性節(jié)點(diǎn)的無(wú)序集合。

DOM簡(jiǎn)介( Document Object Model 文檔對(duì)象模型) W3C

W3C 文檔對(duì)象模型 (DOM) 是中立于平臺(tái)和語(yǔ)言的接口,它允許程序和腳本動(dòng)態(tài)地訪(fǎng)問(wèn)和更新文檔的內(nèi)容、結(jié)構(gòu)和樣式。
W3C DOM 標(biāo)準(zhǔn)被分為 3 個(gè)不同的部分:

核心 DOM - 針對(duì)任何結(jié)構(gòu)化文檔的標(biāo)準(zhǔn)模型

XML DOM - 針對(duì) XML 文檔的標(biāo)準(zhǔn)模型

HTML DOM - 針對(duì) HTML 文檔的標(biāo)準(zhǔn)模型

也就是說(shuō),DOM包含三個(gè)版本(?),對(duì)應(yīng)不同的DOM模型,由于我對(duì)XML還不是很了解,這里主要先討論HTML DOM

關(guān)于XML DOM 的W3C文檔:XML DOM 教程 MDN:DOM概述 XML與HTML的區(qū)別 XML DOM解析 基礎(chǔ)概念 什么是 HTML DOM?

引自W3C:

HTML的標(biāo)準(zhǔn)對(duì)象模型

HTML 的標(biāo)準(zhǔn)編程接口

W3C 標(biāo)準(zhǔn)

HTML DOM 定義了所有 HTML 元素的對(duì)象和屬性,以及訪(fǎng)問(wèn)它們的方法。
換言之,HTML DOM 是關(guān)于如何獲取、修改、添加或刪除 HTML 元素的標(biāo)準(zhǔn)

引自MDN:

文檔對(duì)象模型 (DOM) 是HTMLXML文檔的編程接口。它提供了對(duì)文檔的結(jié)構(gòu)化的表述,并定義了一種方式可以使從程序中對(duì)該結(jié)構(gòu)進(jìn)行訪(fǎng)問(wèn),從而改變文檔的結(jié)構(gòu),樣式和內(nèi)容。DOM 將文檔解析為一個(gè)由節(jié)點(diǎn)和對(duì)象(包含屬性和方法的對(duì)象)組成的結(jié)構(gòu)集合。簡(jiǎn)言之,它會(huì)將web頁(yè)面和腳本或程序語(yǔ)言連接起來(lái)。

一個(gè)web頁(yè)面是一個(gè)文檔。這個(gè)文檔可以在瀏覽器窗口或作為HTML源碼顯示出來(lái)。但上述兩個(gè)情況中都是同一份文檔。文檔對(duì)象模型(DOM)提供了對(duì)同一份文檔的另一種表現(xiàn),存儲(chǔ)和操作的方式。 DOM是web頁(yè)面的完全的面向?qū)ο蟊硎觯軌蚴褂萌?JavaScript等腳本語(yǔ)言進(jìn)行修改。

我們之所以能夠?qū)eb頁(yè)面進(jìn)行添加、刪除、更新、操控元素等等活動(dòng),就是因?yàn)檫@個(gè)DOM才得以實(shí)現(xiàn)。它定義了一套對(duì)象(方法)規(guī)則,使得JavaScript可以根據(jù)這些規(guī)則來(lái)進(jìn)行編程。更像是一個(gè)文檔API

DOM 節(jié)點(diǎn)(Node

根據(jù) W3C 的 HTML DOM 標(biāo)準(zhǔn),HTML 文檔中的所有內(nèi)容都是節(jié)點(diǎn):

整個(gè)文檔是一個(gè)文檔節(jié)點(diǎn)

每個(gè)HTML元素是元素節(jié)點(diǎn)

HTML元素內(nèi)的文本是文本節(jié)點(diǎn)

每個(gè)HTML屬性是屬性節(jié)點(diǎn)

注釋是注釋節(jié)點(diǎn)

節(jié)點(diǎn)樹(shù)

HTML DOM 將 HTML 文檔視作樹(shù)結(jié)構(gòu)。這種結(jié)構(gòu)被稱(chēng)為節(jié)點(diǎn)樹(shù):




    
        
        
         
    
        

Temperature Conversion

這也被稱(chēng)為W3C DOM 1級(jí)核心
W3C的DOM Level 1 Core是用于更改文檔內(nèi)容樹(shù)的強(qiáng)大對(duì)象模型。所有主流瀏覽器都支持Mozilla Firefox和Microsoft Internet Explorer。它是網(wǎng)絡(luò)上腳本編寫(xiě)的強(qiáng)大基礎(chǔ)。
怎么稱(chēng)呼這些元素?

例:


  
    DOM 教程
  
  
    

DOM 第一課

Hello world!

節(jié)點(diǎn)沒(méi)有父節(jié)點(diǎn);它是根節(jié)點(diǎn)

的父節(jié)點(diǎn)是 節(jié)點(diǎn)

文本節(jié)點(diǎn) "Hello world!" 的父節(jié)點(diǎn)是

節(jié)點(diǎn)

節(jié)點(diǎn)擁有兩個(gè)子節(jié)點(diǎn):

節(jié)點(diǎn)擁有一個(gè)子節(jié)點(diǎn):</b> 節(jié)點(diǎn)</p></p> <p><p><b><title></b> 節(jié)點(diǎn)也擁有一個(gè)子節(jié)點(diǎn):<strong>文本節(jié)點(diǎn) "DOM 教程"</strong></p></p> <p><p><strong><b><h1></b> 和 <b><p></b> 節(jié)點(diǎn)是同胞節(jié)點(diǎn)</strong>,同時(shí)也是 <b><body></b> 的子節(jié)點(diǎn)</p></p> <p>并且</p> <p><p><b><head></b> 元素是 <b><html></b> 元素的首個(gè)子節(jié)點(diǎn)</p></p> <p><p><b><body></b> 元素是 <b><html></b> 元素的最后一個(gè)子節(jié)點(diǎn)</p></p> <p><p><b><h1></b> 元素是 <b><body></b> 元素的首個(gè)子節(jié)點(diǎn)</p></p> <p><p><b><p></b> 元素是 <b><body></b> 元素的最后一個(gè)子節(jié)點(diǎn)</p></p> <b>DOM 處理中的常見(jiàn)錯(cuò)誤是希望元素節(jié)點(diǎn)包含文本。</b> <pre><p>在本例中:<b><title>DOM 教程,元素節(jié)點(diǎn) </b>,包含值為 "DOM 教程" 的<strong>文本節(jié)點(diǎn)</strong>。</p></pre> <b><b>HTML DOM</b></b> <b>首先記住這個(gè):</b> <pre> <b><strong>在 <b>HTML DOM</b> (文檔對(duì)象模型)中,每個(gè)部分都是節(jié)點(diǎn):</strong></b> <p><b>文檔本身是文檔節(jié)點(diǎn)</b></p> <p><b>所有<b>HTML</b>元素是元素節(jié)點(diǎn)</b></p> <p><b>所有 <b>HTML</b> 屬性是屬性節(jié)點(diǎn)</b></p> <p><b> <b>HTML</b>元素內(nèi)的文本是文本節(jié)點(diǎn)</b></p> <p><b>注釋是注釋節(jié)點(diǎn)</b></p> </pre> <b><b>DOM Document</b></b> <pre> <b>每個(gè)載入瀏覽器的 <b>HTML</b> 文檔都會(huì)成為 <b>Document</b> 對(duì)象。</b> <b> <b>Document</b>對(duì)象使我們可以從腳本中對(duì) <b>HTML</b> 頁(yè)面中的所有元素進(jìn)行訪(fǎng)問(wèn)。</b> <b><strong>提示:<b>Document</b> 對(duì)象是 <b>Window</b> 對(duì)象的一部分,可通過(guò) <b>window.document</b> 屬性對(duì)其進(jìn)行訪(fǎng)問(wèn)。</strong></b> </pre> <b><b>document.URL</b></b> <p><p>URL 屬性可返回當(dāng)前文檔的 URL。<br>比如在現(xiàn)在的窗口下,控制臺(tái)輸入:</p></p> <pre>alert(document.URL) </pre> <p><script type="text/javascript">showImg("https://segmentfault.com/img/bVNXh4?w=609&h=152");</script></p> <b><b>document.getElementById()</b></b> <p>這個(gè)大家都很熟悉了,<b>getElementById()</b> 方法可返回對(duì)擁有指定 ID 的第一個(gè)對(duì)象的引用。</p> <pre><p>W3C還定義了一個(gè)工具函數(shù):<b>getElementById()</b> 是一個(gè)重要的方法,在 <b>DOM</b> 程序設(shè)計(jì)中,它的使用非常常見(jiàn)。我們?yōu)槟x了一個(gè)工具函數(shù),這樣您就可以通過(guò)一個(gè)較短的名字來(lái)使用 <b>getElementById()</b> 方法了:</p></pre> <pre> function id(x) { if (typeof x == "string") return document.getElementById(x); return x; } // 上面這個(gè)函數(shù)接受元素 ID 作為它們的參數(shù)。使用前編寫(xiě) x = id(x) 就可以了。</pre> <b><b>document.getElementsByName()</b></b> <p><b>getElementsByName()</b> 方法可返回帶有指定名稱(chēng)的<strong>對(duì)象的集合</strong>。</p> <pre><p>該方法與 <b>getElementById()</b> 方法相似,但是它查詢(xún)?cè)氐?<b>name</b> 屬性,而不是 id 屬性。<br>另外,因?yàn)橐粋€(gè)文檔中的 <b>name</b> 屬性可能不唯一(如 <b>HTML</b> 表單中的單選按鈕通常具有相同的 <b>name</b> 屬性),<strong>所有 <b>getElementsByName()</b> 方法返回的是元素的數(shù)組,而不是一個(gè)元素。</strong></p></pre> <p>由于這個(gè)方法返回的是一個(gè)數(shù)組,不是具體的元素,所以必須注意這點(diǎn):</p> <pre> <input type="text" value="" name="myinput"/> <input type="button" value="" name="myinput" id="ID"/> <script type="text/javascript"> var inputA = document.getElementsByName("myinput")[0]; // [0]表示獲得的所有input元素中第一個(gè) var inputB = document.getElementById("ID"); // ID取值則很精確,因?yàn)镮D的特殊性 var iA = inputA.attributes; // 元素自帶對(duì)象,內(nèi)含該元素所有屬性(以鍵值對(duì)存在) alert(iA.length); // 3 alert(iA[0].name+" : "+iA[0].value); // "type : text" var iB = inputB.attributes; alert(iB.length); // 4 alert(iB[0].name+" : "+iB[0].value); // "type : button" </script> </pre> <b><b>document.getElementsByTagName()</b></b> <p>注意要和上面的區(qū)分,<b>TagName</b>指的是標(biāo)簽名</p> <pre> <b> <b>getElementsByTagName()</b> 方法可返回帶有指定標(biāo)簽名的<strong>對(duì)象的集合</strong>,<strong>返回元素的順序是它們?cè)谖臋n中的順序。</strong> </b> <b>如果把特殊字符串 <b>"*"</b> 傳遞給 <b>getElementsByTagName()</b> 方法,<strong>它將返回文檔中所有元素的列表,元素排列的順序就是它們?cè)谖臋n中的順序。</strong> </b> <p><strong>注釋?zhuān)簜鬟f給 <b>getElementsByTagName()</b> 方法的字符串可以不區(qū)分大小寫(xiě)。</strong></p> </pre> <pre> <input type="text" /> <input type="text" /> <input type="text" /> <script type="text/javascript"> var x = document.getElementsByTagName("INPUT")[0]; alert(x.tagName) // "INPUT" </script> </pre> <b><b>document.write()</b></b> <pre><p><strong><b>write()</b> 方法可向文檔寫(xiě)入 HTML 表達(dá)式或 JavaScript 代碼。</strong><br>可列出多個(gè)參數(shù)<b>(exp1,exp2,exp3,...)</b> ,它們將按順序被追加到文檔中。</p></pre> <pre>document.write("Hello World!"); </pre> <b>關(guān)于Document的更多屬性方法可查W3C:HTML DOM Document 對(duì)象 </b> <b><b>DOM Element</b></b> <b>簡(jiǎn)介:</b> <pre> <p><p><strong>在 HTML DOM 中,Element 對(duì)象表示 HTML 元素(所有 HTML 元素是元素節(jié)點(diǎn))。</strong></p></p> <p><p>Element 對(duì)象可以擁有類(lèi)型為元素節(jié)點(diǎn)、文本節(jié)點(diǎn)、注釋節(jié)點(diǎn)的子節(jié)點(diǎn)。</p></p> <p><p><b>NodeList</b> 對(duì)象表示節(jié)點(diǎn)列表,比如 HTML 元素的子節(jié)點(diǎn)集合。</p></p> <p><p>元素也可以擁有屬性。屬性是屬性節(jié)點(diǎn)(參見(jiàn)<b>DOM Attribute</b>)。</p></p> </pre> <b><b>element.parentNode</b></b> <pre><p><b>parentNode</b> 屬性以 Node 對(duì)象的形式返回指定節(jié)點(diǎn)的父節(jié)點(diǎn)。<br>如果指定節(jié)點(diǎn)沒(méi)有父節(jié)點(diǎn),則返回 <b>null</b>。</p></pre> <pre> <div> <h1>H1</h1> </div> <script type="text/javascript"> var h = document.getElementsByTagName("H1")[0]; alert(h.parentNode.nodeName); // "DIV" </script> </pre> <b><b>element.style</b></b> <pre><p><b>HTMLElement.style</b> 屬性返回一個(gè) CSSStyleDeclaration 對(duì)象,表示元素的 內(nèi)聯(lián)style 屬性(attribute),但忽略任何樣式表應(yīng)用的屬性。 通過(guò) style 可以訪(fǎng)問(wèn)的 CSS 屬性列表,可以查看 CSS Properties Reference。</p></pre> <pre> <div> <h1>H1</h1> </div> <script type="text/javascript"> var h = document.getElementsByTagName("H1")[0]; h.setAttribute("style","font-size:100px;color: blue;") </script></pre> <p><script type="text/javascript">showImg("https://segmentfault.com/img/bVNXNM?w=865&h=193");</script></p> <pre> <b> <b>elt.style.cssText = "color: blue";</b> 設(shè)置多個(gè)樣式屬性</b> <b> <b>elt.setAttribute("style", "color: blue");</b> 設(shè)置多個(gè)樣式屬性</b> <b> <b>elt.style.color = "blue";</b> 直接設(shè)置樣式屬性</b> <b> <b>var st = elt.style; st.color = "blue";</b> 間接設(shè)置樣式屬性</b> <p>通常,要了解元素樣式的信息,僅僅使用 style 屬性是不夠的,這是因?yàn)樗话嗽谠貎?nèi)嵌 style 屬性(attribute)上聲明的的 CSS 屬性,而不包括來(lái)自其他地方聲明的樣式,如 <head> 部分的內(nèi)嵌樣式表,或外部樣式表。要獲取一個(gè)元素的所有 CSS 屬性,你應(yīng)該使用 window.getComputedStyle()。</p> </pre> <b><b>element.childNodes;</b></b> <pre><p><b>childNodes</b> 屬性返回節(jié)點(diǎn)的子節(jié)點(diǎn)集合,以 <b>NodeList</b> 對(duì)象。</p></pre> <p>提示:您可以使用 <b>length</b> 屬性來(lái)確定子節(jié)點(diǎn)的數(shù)量,然后您就能夠遍歷所有的子節(jié)點(diǎn)并提取您需要的信息。</p> <pre><p><b>Node.childNodes</b> 返回包含指定節(jié)點(diǎn)的子節(jié)點(diǎn)的集合,該集合為即時(shí)更新的集合(live collection)。</p></pre> <p><b>獲得的<b>Nodelist</b>是實(shí)時(shí)更新的,如果你新增一個(gè)子節(jié)點(diǎn),下次調(diào)用<b>chilNodes</b>屬性返回的<b>Nodelist</b>會(huì)變化(更新)。</b></p> <p><b> <b>Nodelist</b>不是數(shù)組!這一點(diǎn)很重要</b></p> <pre><!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>

this is div

this is H1

this is H2

這是DIV2的文本節(jié)點(diǎn)

Element P


MDN:Node.childNodes、NodeList 深入理解 NodeList - 挨踢前端 - 博客園 由于這個(gè)特性,所以一般推薦使用.childrenjQuery 遍歷 - children() 方法 DOM Attribute Attr 對(duì)象

在 HTML DOM 中,Attr 對(duì)象表示 HTML 屬性。

HTML 屬性始終屬于 HTML 元素。

NamedNodeMap 對(duì)象

在 HTML DOM 中,NamedNodeMap 對(duì)象表示元素屬性節(jié)點(diǎn)的無(wú)序集合

NamedNodeMap 中的節(jié)點(diǎn)可通過(guò)名稱(chēng)或索引(數(shù)字)來(lái)訪(fǎng)問(wèn)。

            
            

這段代碼首先獲得inputHTML元素,然后調(diào)用attributes返回NameNodeMap屬性節(jié)點(diǎn)集合,里面的屬性以鍵值對(duì)方式存在,之后調(diào)用value屬性的屬性值。

attribute.setNamedItem()

setNamedItem() 方法向 nodeMap 添加指定的節(jié)點(diǎn)。
如果此節(jié)點(diǎn)已存在,則將替換該節(jié)點(diǎn),并返回被替換的節(jié)點(diǎn),否則返回值是 null。

            var i = document.getElementById("input");
            var c = document.createAttribute("class");
            c.nodeValue = "cla";
            i.attributes.setNamedItem(c)

創(chuàng)建屬性節(jié)點(diǎn),設(shè)置節(jié)點(diǎn)值,添加到元素節(jié)點(diǎn)下,然后設(shè)置屬性節(jié)點(diǎn),這里用的是attributes方法,即namednodemap.removeNamedItem(nodename)

添加屬性節(jié)點(diǎn)也可以使用element.setAttributeNode(attributenode)方法;

關(guān)于更多:HTML DOM Attribute 對(duì)象,其中提到了不要在屬性節(jié)點(diǎn)上使用節(jié)點(diǎn)對(duì)象的屬性和方法 常用方法:HTML DOM 關(guān)于事件一章我會(huì)另開(kāi)一篇博文繼續(xù)研究

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

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

相關(guān)文章

  • JavaScript簡(jiǎn)介

    摘要:發(fā)布后不久,微軟就在其中加入了名為的實(shí)現(xiàn)命名為是為了避開(kāi)與有關(guān)的授權(quán)問(wèn)題。以現(xiàn)在的眼光來(lái)看,微軟年月為進(jìn)入瀏覽器領(lǐng)域而實(shí)施的這個(gè)重大舉措,是導(dǎo)致日后蒙羞的一個(gè)標(biāo)志性時(shí)間。微軟推出其實(shí)現(xiàn)意味著有了兩個(gè)不同的版本中的中的。 JavaScript簡(jiǎn)介 前言:最近在細(xì)讀Javascript高級(jí)程序設(shè)計(jì),對(duì)于我而言,中文版,書(shū)中很多地方一筆帶過(guò),所以用自己所理解的,嘗試細(xì)致解讀下。如有紕漏或錯(cuò)...

    teren 評(píng)論0 收藏0
  • JavaScript 簡(jiǎn)介

    摘要:簡(jiǎn)介原文鏈接簡(jiǎn)稱(chēng)是一種輕量級(jí),解釋型的編程語(yǔ)言,其函數(shù)是一等公民。標(biāo)準(zhǔn)的目標(biāo)是讓任何一種程序設(shè)計(jì)語(yǔ)言能操控使用任何一種標(biāo)記語(yǔ)言編寫(xiě)出的任何一份文檔。核心規(guī)定了如何映射基于的文檔結(jié)構(gòu),以便簡(jiǎn)化對(duì)文檔的任意部分的訪(fǎng)問(wèn)和操作。 JavaScript 簡(jiǎn)介 原文鏈接 JavaScript ( 簡(jiǎn)稱(chēng):JS ) 是一種 輕量級(jí),解釋型 的編程語(yǔ)言,其函數(shù)是一等公民。眾所周知,它是用于網(wǎng)頁(yè)開(kāi)發(fā)的腳...

    URLOS 評(píng)論0 收藏0
  • Javascript簡(jiǎn)介

    摘要:以下內(nèi)容都是一些概念性的知識(shí)點(diǎn)弄懂這些基本的概念是我們?cè)谑澜缈吹酶h(yuǎn)的墊腳石誕生于年年公司開(kāi)發(fā)發(fā)布時(shí)臨時(shí)將名字改為當(dāng)時(shí)它的主要目的是處理以前由服務(wù)端語(yǔ)言負(fù)責(zé)的輸入驗(yàn)證操作隨著其發(fā)展現(xiàn)在已不再局限于數(shù)據(jù)驗(yàn)證而是具備了與瀏覽器窗口及其內(nèi)容等幾乎 以下內(nèi)容都是一些概念性的知識(shí)點(diǎn),弄懂這些基本的概念是我們?cè)贘avaScript世界看得更遠(yuǎn)的墊腳石. Javascript Javascript誕...

    Near_Li 評(píng)論0 收藏0
  • JavaScript 闖關(guān)記》之簡(jiǎn)介

    摘要:瀏覽器只是實(shí)現(xiàn)的宿主環(huán)境之一,其他宿主環(huán)境包括和。年月,版發(fā)布,成為國(guó)際標(biāo)準(zhǔn)。事件定義了事件和事件處理的接口。對(duì)于已經(jīng)正式納入標(biāo)準(zhǔn)的來(lái)說(shuō),盡管各瀏覽器都實(shí)現(xiàn)了某些眾所周知的共同特性,但其他特性還是會(huì)因?yàn)g覽器而異。 JavaScript 是面向 Web 的編程語(yǔ)言,絕大多數(shù)現(xiàn)代網(wǎng)站都使用了 JavaScript,并且所有的現(xiàn)代 Web 瀏覽器(電腦,手機(jī),平板)均包含了 JavaScri...

    baihe 評(píng)論0 收藏0
  • 簡(jiǎn)單聊聊DOM

    摘要:討論在如何去使用元素用于在頁(yè)面中嵌入或引入腳本代碼,該元素默認(rèn)被定義在元素中頁(yè)面內(nèi)容該屬性定義規(guī)定的文本類(lèi)型,可以為類(lèi)型也可以為類(lèi)型等其他類(lèi)型和屬性類(lèi)似,這個(gè)屬性定義腳本使用的語(yǔ)言,該屬性不是標(biāo)準(zhǔn)規(guī)范定義引用外部腳本的內(nèi)嵌代碼與內(nèi) 討論在HTML如何去使用JavaScript 元素用于在HTML頁(yè)面中嵌入或引入JavaScript腳本代碼,該元素默認(rèn)被定義在元素中 HTML頁(yè)面內(nèi)容: ...

    MASAILA 評(píng)論0 收藏0
  • JavaScript的組成 | DOM/BOM

    摘要:中主要關(guān)注的就是,對(duì)象的主要功能就是處理網(wǎng)頁(yè)內(nèi)容。中文翻譯模型,如果你把這個(gè)詞從中抽離出來(lái),看下面的圖片是不是就很好理解。年月制定的標(biāo)準(zhǔn),由兩大部分組成核心和。擴(kuò)展鼠標(biāo)和用戶(hù)界面事件范圍遍歷,增加了對(duì)支持。 往期回顧 在上一期的《JavaScript的組成 | 核心-ECMAScript 》?里,我們有說(shuō)到JavaScript 是由三大部分組成,分別是:核心ECMAScript、文檔對(duì)...

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

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

0條評(píng)論

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