Javascript中DOM常見(jiàn)API

前言:盡管現(xiàn)在有很多優(yōu)秀的框架,大大簡(jiǎn)化了我們的DOM操作,但是我們?nèi)匀灰獙W(xué)好DOM知識(shí)來(lái)寫(xiě)原生JS,從根本上去理解,才更能在解決問(wèn)題時(shí)舉重若輕。

一、什么是DOM

D(document)O(object)M(model) 文檔對(duì)象模型。

DOM(文檔對(duì)象模型)是HTML和XML文檔的編程接口。它提供了對(duì)文檔的結(jié)構(gòu)化的表述,并定義一種方式可以使從程序中對(duì)該結(jié)構(gòu)進(jìn)行訪問(wèn),從而改變文檔的結(jié)構(gòu)、樣式和內(nèi)容。DOM將文檔解析為一個(gè)由節(jié)點(diǎn)和對(duì)象(包含屬性和方法的對(duì)象)組成的結(jié)構(gòu)集合。

上述說(shuō)法是MDN的解釋?zhuān)俜剑覀儊?lái)?yè)Q種說(shuō)法來(lái)解釋。

DOM就是一種想象的樹(shù)形結(jié)構(gòu),它的作用是將網(wǎng)頁(yè)轉(zhuǎn)為一個(gè) JavaScript 對(duì)象,從而可以用腳本進(jìn)行各種操作(比如增刪內(nèi)容)。

image

如上圖,是我們文檔的樹(shù)形結(jié)構(gòu),我們通過(guò)DOM模型將上述結(jié)構(gòu)一一映射成節(jié)點(diǎn)(通過(guò)構(gòu)造函數(shù)把頁(yè)面中的節(jié)點(diǎn)變成實(shí)例對(duì)象,dom就是這樣把文檔變成對(duì)象的),這些節(jié)點(diǎn)就又構(gòu)成了節(jié)點(diǎn)樹(shù),也就是我們說(shuō)的想象中的那棵DOM Tree。

二、Node

DOM 的最小組成單位叫做節(jié)點(diǎn)(node)。文檔的樹(shù)形結(jié)構(gòu)(DOM 樹(shù)),就是由各種不同類(lèi)型的節(jié)點(diǎn)組成。

節(jié)點(diǎn)主要有7種類(lèi)型:

  • Document:整個(gè)文檔樹(shù)的根節(jié)點(diǎn)
  • Document:doctype標(biāo)簽節(jié)點(diǎn),如<!DOCTYPE html>
  • Element:網(wǎng)頁(yè)的各種Html標(biāo)簽,比如<body><div>
  • Attribute:網(wǎng)頁(yè)元素的屬性
  • Text:標(biāo)簽之間或者標(biāo)簽包含的文本
  • Comment:注釋
  • DocunmentFragment:文檔的片段

所以文檔樹(shù)對(duì)應(yīng)的節(jié)點(diǎn)樹(shù)如同下圖:

image

注:DOM樹(shù)有3種層級(jí)結(jié)構(gòu):

  • 父節(jié)點(diǎn)關(guān)系(parentNode):直接的上級(jí)節(jié)點(diǎn)
  • 子節(jié)點(diǎn)關(guān)系(childNodes):直接的下級(jí)節(jié)點(diǎn)
  • 兄弟關(guān)系(sibling):擁有同一個(gè)父節(jié)點(diǎn)的同級(jí)節(jié)點(diǎn)

值得注意的是,在上圖中只有根節(jié)點(diǎn)也就是<html>對(duì)應(yīng)的節(jié)點(diǎn)沒(méi)有父節(jié)點(diǎn)。

三、Node接口

瀏覽器提供一個(gè)原生的節(jié)點(diǎn)對(duì)象Node,上面的7種節(jié)點(diǎn)均繼承了Node,因此具有一些共同的屬性和方法。這是DOM操作的基礎(chǔ)。

image

1、屬性

1.1 Node.prototype.nodeType

nodeType屬性返回一個(gè)整數(shù)值,表示節(jié)點(diǎn)的類(lèi)型。

image

如上圖,我們獲取當(dāng)前頁(yè)面的body標(biāo)簽下的第一個(gè)孩子,是一個(gè)div標(biāo)簽,然后我們通過(guò)nodeType來(lái)看一下它的節(jié)點(diǎn)類(lèi)型,結(jié)果返回了一個(gè)數(shù)字1,這代表著是一個(gè)Element節(jié)點(diǎn)。

【至于為什么會(huì)是返回一個(gè)數(shù)字而不是簡(jiǎn)單明了的返回Element,這也是由于歷史原因,早期計(jì)算機(jī)內(nèi)存緊張,為了節(jié)省內(nèi)存使用了并無(wú)規(guī)律的數(shù)字】

常見(jiàn)的有以下:

Node.ELEMENT_NODE:1

Node.ATTRIBUTE_NODE:2

Node.TEXT_NODE:3

Node.COMMENT_NODE:8

Node.DOCUMENT_NODE:9

Node.DOCUMENT_TYPE_NODE:10

Node.DOCUMENT_FRAGMENT_NODE:11

1.2 Node.prototype.nodeName

nodeName屬性返回節(jié)點(diǎn)名稱(chēng)

image

注:在元素節(jié)點(diǎn)中,返回名稱(chēng)基本都是大寫(xiě),只有<svg>標(biāo)簽返回的是小寫(xiě)。

1.3 Node.prototype.nodeValue

nodeValue屬性返回一個(gè)字符串,表示當(dāng)前節(jié)點(diǎn)本身的文本值,該屬性可讀寫(xiě)。

只有文本節(jié)點(diǎn)(text)、注釋節(jié)點(diǎn)(comment)和屬性節(jié)點(diǎn)(attr)有文本值,因此這三類(lèi)節(jié)點(diǎn)的nodeValue可以返回結(jié)果,其他類(lèi)型的節(jié)點(diǎn)一律返回null

// html 代碼如下
// <div id="d1">hello world</div>
var div = document.getElementById('d1');
div.nodeValue // null
div.firstChild.nodeValue //"hello world"

1.4 Node.prototype.textContent

textContent返回節(jié)點(diǎn)及后代節(jié)點(diǎn)的文本 ,即獲取文本

這里和innerText一起講:

早期并沒(méi)有獲取文本的API ,導(dǎo)致編碼很繁瑣,所以后來(lái)IE自己添加了一個(gè)API就是innerText,然后火狐和opera也推出了textContent

兩者的區(qū)別:

  • textContent會(huì)獲取所有元素的內(nèi)容,包括<script><style>元素,然而innerText不會(huì)獲取這些內(nèi)容。
  • innerText可以意識(shí)到樣式,它不會(huì)返回樣式為display:none也就是隱藏的文本,而textContent會(huì)。
  • 由于innerText會(huì)意識(shí)到樣式,也就是會(huì)受樣式的影響,因此會(huì)觸發(fā)重排(reflow)導(dǎo)致性能低,而textContent不會(huì)。
  • textContent不同, 在 Internet Explorer (對(duì)于小于等于 IE11 的版本) 中對(duì)innerText進(jìn)行修改, 不僅會(huì)移除當(dāng)前元素的子節(jié)點(diǎn),而且還會(huì)永久性地破壞所有后代文本節(jié)點(diǎn)(所以不可能將節(jié)點(diǎn)再次插入到任何其他元素或同一元素中).

1.5 Node.prototype.nextSibling

Node.nextSibling屬性返回緊跟在當(dāng)前節(jié)點(diǎn)后面的第一個(gè)同級(jí)節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)后面沒(méi)有同級(jí)節(jié)點(diǎn),則返回null

image

值得注意的是,該屬性還包括文本節(jié)點(diǎn)和注釋節(jié)點(diǎn)(``)。因此如果當(dāng)前節(jié)點(diǎn)后面有空格或者回車(chē),該屬性會(huì)返回一個(gè)文本節(jié)點(diǎn),內(nèi)容為空格或回車(chē)。

document.body.nextSibling返回了文本節(jié)點(diǎn)或者注釋節(jié)點(diǎn),而我們需要獲得是元素節(jié)點(diǎn), 也可以用document.prototype.nextElementSibling直接獲取該節(jié)點(diǎn)后面最接近的同級(jí)元素節(jié)點(diǎn)。

1.6 Node.prototype.previousSibling

previousSibling屬性返回當(dāng)前節(jié)點(diǎn)前面的、距離最近的一個(gè)同級(jí)節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)前面沒(méi)有同級(jí)節(jié)點(diǎn),則返回null

Node.prototype.previousElementSibling 前一個(gè)同級(jí)元素節(jié)點(diǎn)

其他同1.5 一致

1.7 Node.prototype.firstChild,Node.prototype.firstElementChild

firstChild屬性返回當(dāng)前節(jié)點(diǎn)的第一個(gè)子節(jié)點(diǎn),如果當(dāng)前節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn),則返回null
firstElementChild屬性返回當(dāng)前節(jié)點(diǎn)的第一個(gè)元素節(jié)點(diǎn)。

1.8 Node.prototype.lastChild,Node.prototype.lastElementChild

lastChild屬性返回當(dāng)前節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn),如果當(dāng)前節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn),則返回null
lastElementChild屬性返回當(dāng)前節(jié)點(diǎn)的最后一個(gè)元素節(jié)點(diǎn)。

1.9 Node.prototype.childNodes

childNodes屬性返回一個(gè)類(lèi)似數(shù)組的對(duì)象(NodeList集合),成員包括當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)。

image

值得注意的是,除了元素節(jié)點(diǎn),childNodes屬性的返回值還包括文本節(jié)點(diǎn)和注釋節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)不包括任何子節(jié)點(diǎn),則返回一個(gè)空的NodeList集合。由于NodeList對(duì)象是一個(gè)動(dòng)態(tài)集合,一旦子節(jié)點(diǎn)發(fā)生變化,立刻會(huì)反映在返回結(jié)果之中。

1.10 Node.prototype.children

children屬性返回一個(gè)類(lèi)似數(shù)組的對(duì)象(HTMLCollection),成員包括當(dāng)前節(jié)點(diǎn)的所有子元素節(jié)點(diǎn)。

image

值得注意的是,這里就不會(huì)返回文本節(jié)點(diǎn)和注釋節(jié)點(diǎn)了,它只會(huì)返回元素節(jié)點(diǎn)。由于HTMLCollection集合是動(dòng)態(tài)集合,一旦子節(jié)點(diǎn)發(fā)生變化,立刻會(huì)反映在返回結(jié)果之中。

小tips : NodelistHTMLCollection 集合的區(qū)別

  1. NodeList可以包含各種類(lèi)型的節(jié)點(diǎn),HTMLCollection只能包含 HTML 元素節(jié)點(diǎn).
  2. NodeList 實(shí)例可能是動(dòng)態(tài)集合,也可能是靜態(tài)集合。目前,只有Node.childNodes返回的是一個(gè)動(dòng)態(tài)集合,其他的NodeList 都是靜態(tài)集合。而HTMLCollection實(shí)例都是動(dòng)態(tài)集合,節(jié)點(diǎn)的變化會(huì)實(shí)時(shí)反映在集合中.
  3. NodeList接口不同,HTMLCollection沒(méi)有forEach方法,只能使用for循環(huán)遍歷。

2、方法

2.1 Node.prototype.appendChild()

appendChild方法就是接受一個(gè)節(jié)點(diǎn)對(duì)象作為參數(shù),將其作為最后一個(gè)子節(jié)點(diǎn),插入到當(dāng)前節(jié)點(diǎn) 。該方法的返回值就是插入的子節(jié)點(diǎn)。

注意:

1、如果參數(shù)節(jié)點(diǎn)是 DOM 已經(jīng)存在的節(jié)點(diǎn),appendChild方法會(huì)將其從原來(lái)的位置移動(dòng)到新位置。

2、如果appendChild方法的參數(shù)是DocumentFragment節(jié)點(diǎn),那么插入的是DocumentFragment的所有子節(jié)點(diǎn),而不是DocumentFragment節(jié)點(diǎn)本身。返回值是一個(gè)空的DocumentFragment .

2.2 Node.prototype.hasChildNodes()

hasChildNodes方法返回一個(gè)布爾值,表示當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn)。

注意:子節(jié)點(diǎn)包括所有類(lèi)型的節(jié)點(diǎn),并不僅僅是元素節(jié)點(diǎn)。哪怕節(jié)點(diǎn)只包含一個(gè)空格,hasChildNodes方法也會(huì)返回true

判斷一個(gè)節(jié)點(diǎn)是否有子節(jié)點(diǎn),有以下3種方法:

1、node.hasChildNodes()

2、node.firstChild ! == null

3、node.childNodes && node.childNodes.length > 0

2.3 Node.prototype.cloneNode()

cloneNode方法拷貝一個(gè)節(jié)點(diǎn),并且可以接受一個(gè)布爾值,來(lái)表示是否同時(shí)拷貝子節(jié)點(diǎn)。它的返回值是一個(gè)克隆出來(lái)的新節(jié)點(diǎn)。

image
image

深拷貝:深入進(jìn)去全部拷貝,包括子節(jié)點(diǎn)。

淺拷貝:只拷貝節(jié)點(diǎn)本身。

值得注意的是,該方法返回的節(jié)點(diǎn)不在文檔中,無(wú)任何父節(jié)點(diǎn),必須用如appendChild()等方法添加。

2.4 Node.prototype.insertBefore()

insertBefore方法用于將某個(gè)節(jié)點(diǎn)插入父節(jié)點(diǎn)內(nèi)部的指定位置。

insertBefore方法接受兩個(gè)參數(shù),第一個(gè)參數(shù)是所要插入的節(jié)點(diǎn)newNode,第二個(gè)參數(shù)時(shí)父節(jié)點(diǎn)parentNode內(nèi)部的一個(gè)子節(jié)點(diǎn)referenceNodenewNode將插在referenceNode這個(gè)子節(jié)點(diǎn)的前面。返回值是插入的新節(jié)點(diǎn)newNode.

2.5 Node.prototype.removeChild()

removeChild方法接受一個(gè)子節(jié)點(diǎn)作為參數(shù),用于從當(dāng)前節(jié)點(diǎn)移除該子節(jié)點(diǎn)。返回值是移除的子節(jié)點(diǎn)。

值得注意的是,被移除的節(jié)點(diǎn)依然存在于內(nèi)存之中,但不再是DOM的一部分。所以,一個(gè)節(jié)點(diǎn)移除以后,依然可以使用它,比如插入到另一個(gè)節(jié)點(diǎn)下面。

如果參數(shù)節(jié)點(diǎn)不是當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn),removeChild方法將報(bào)錯(cuò)。

2.6 Node.prototype.replaceChild()

replaceChild方法用于將一個(gè)新的節(jié)點(diǎn),替換當(dāng)前節(jié)點(diǎn)的某一個(gè)子節(jié)點(diǎn)。

創(chuàng)造一個(gè)新兒子取代掉舊兒子,舊兒子去哪兒了?舊兒子去內(nèi)存了。

2.7 Node.prototype.contains()

contains方法返回一個(gè)布爾值,表示參數(shù)節(jié)點(diǎn)是否為該節(jié)點(diǎn)的后代節(jié)點(diǎn)。

2.8 Node.prototype.isEqualNode(),Node.prototype.isSameNode()

isEqualNode方法返回一個(gè)布爾值,用于檢查兩個(gè)節(jié)點(diǎn)是否相等。所謂相等的節(jié)點(diǎn),指的是兩個(gè)節(jié)點(diǎn)的類(lèi)型相同、屬性相同、子節(jié)點(diǎn)相同。
isSameNode方法返回一個(gè)布爾值,表示兩個(gè)節(jié)點(diǎn)是否為同一個(gè)節(jié)點(diǎn)。

image

所以說(shuō),isSameNode就等同于 ===嚴(yán)格相等運(yùn)算符。

2.9 Node.prototype.normalize()

normailize方法用于清理當(dāng)前節(jié)點(diǎn)內(nèi)部的所有文本節(jié)點(diǎn)(text)。它會(huì)去除空的文本節(jié)點(diǎn),并且將毗鄰的文本節(jié)點(diǎn)合并成一個(gè),也就是說(shuō)不存在空的文本節(jié)點(diǎn),以及毗鄰的文本節(jié)點(diǎn)

四、Document接口

document節(jié)點(diǎn)對(duì)象代表整個(gè)文檔,每張網(wǎng)頁(yè)都有自己的document對(duì)象。window.document屬性就指向這個(gè)對(duì)象。只要瀏覽器開(kāi)始載入 HTML 文檔,該對(duì)象就存在了,可以直接使用。

document對(duì)象有不同的辦法可以獲取。

1、屬性

1.1 用于指向其他節(jié)點(diǎn)(快捷獲取某些特殊節(jié)點(diǎn))的屬性

  • document.doctype 指向<DOCTYPE>節(jié)點(diǎn),即文檔類(lèi)型節(jié)點(diǎn)。
  • document.documentElement指向 DOM 的 html節(jié)點(diǎn)
  • document.activeElement指向獲得焦點(diǎn)的那個(gè)節(jié)點(diǎn)
  • document.fullscreenElement返回當(dāng)前以全屏狀態(tài)展示的 DOM 元素。
  • document.body指向<body>節(jié)點(diǎn)
  • document.head指向<head>節(jié)點(diǎn)。
  • document.scrollingElement返回文檔的滾動(dòng)元素。
  • ……

1.2 返回文檔特定元素的偽數(shù)組集合的屬性

  • document.links屬性返回當(dāng)前文檔所有設(shè)定了href屬性的<a><area>節(jié)點(diǎn)。
  • document.forms屬性返回所有<form>表單節(jié)點(diǎn)。
  • document.images屬性返回頁(yè)面所有<img>圖片節(jié)點(diǎn)。
  • document.scripts屬性返回所有<script>節(jié)點(diǎn)。
  • document.styleSheets屬性返回文檔內(nèi)嵌或引入的樣式表集合
  • ……

以上均為動(dòng)態(tài)集合,而且除了document.styleSheets,以上的集合屬性返回的都是HTMLCollection實(shí)例。

1.3 返回文檔信息的屬性

  • document.documentURI和document.URL屬性都返回一個(gè)字符串,表示當(dāng)前文檔的網(wǎng)址。
  • document.domain屬性返回當(dāng)前文檔的域名,不包含協(xié)議和接口。
  • document.Location對(duì)象是瀏覽器提供的原生對(duì)象,提供 URL 相關(guān)的信息和操作方法。
  • document.title屬性返回當(dāng)前文檔的標(biāo)題。
  • document.characterSet屬性返回當(dāng)前文檔的編碼,比如UTF-8
  • document.referrer屬性返回一個(gè)字符串,表示當(dāng)前文檔的訪問(wèn)者來(lái)自哪里.
  • ……

1.4 返回文檔狀態(tài)的屬性

  • document.hidden屬性返回一個(gè)布爾值,表示當(dāng)前頁(yè)面是否可見(jiàn)。
  • document.visibilityState返回文檔的可見(jiàn)狀態(tài)。
  • ……

2、方法

  • document.open方法清除當(dāng)前文檔所有內(nèi)容,使得文檔處于可寫(xiě)狀態(tài),供document.write方法寫(xiě)入內(nèi)容。
  • document.close方法用來(lái)關(guān)閉document.open()打開(kāi)的文檔。
  • document.write方法用于向當(dāng)前文檔寫(xiě)入內(nèi)容。
  • document.writeln方法與write方法完全一致,除了會(huì)在輸出內(nèi)容的尾部添加換行符。
  • document.querySelector接受一個(gè) CSS 選擇器作為參數(shù),返回匹配該選擇器的元素節(jié)點(diǎn)
  • document.querySelectorAll方法與querySelector用法類(lèi)似,區(qū)別是返回一個(gè)NodeList對(duì)象,包含所有匹配給定選擇器的節(jié)點(diǎn)。
  • document.getElementsByTagName搜索 HTML 標(biāo)簽名,返回符合條件的元素。
  • document.getElementsByClassName 返回一個(gè)類(lèi)似數(shù)組的對(duì)象(HTMLCollection實(shí)例),包括了所有class名字符合指定條件的元素,元素的變化實(shí)時(shí)反映在返回結(jié)果中。
  • document.getElementsByName方法用于選擇擁有name屬性的 HTML 元素,返回一個(gè)類(lèi)似數(shù)組的的對(duì)象(NodeList實(shí)例).
  • document.getElementById方法返回匹配指定id屬性的元素節(jié)點(diǎn)
  • document.createElement方法用來(lái)生成元素節(jié)點(diǎn),并返回該節(jié)點(diǎn)。
  • document.createTextNode方法用來(lái)生成文本節(jié)點(diǎn)(Text實(shí)例)
  • document.createDocumentFragment方法生成一個(gè)空的文檔片段對(duì)象(DocumentFragment實(shí)例)。
  • document.hasFocus方法返回一個(gè)布爾值,表示當(dāng)前文檔之中是否有元素被激活或獲得焦點(diǎn)。
  • ……

五、Element接口

1、屬性

  • Element.id屬性返回指定元素的id屬性,該屬性可讀寫(xiě)。
  • Element.tagName屬性返回指定元素的大寫(xiě)標(biāo)簽名
  • Element.title屬性用來(lái)讀寫(xiě)當(dāng)前元素的 HTML 屬性title
  • Element.attributes屬性返回一個(gè)類(lèi)似數(shù)組的對(duì)象,成員是當(dāng)前元素節(jié)點(diǎn)的所有屬性節(jié)點(diǎn)
  • Element.className屬性用來(lái)讀寫(xiě)當(dāng)前元素節(jié)點(diǎn)的class屬性。
  • Element.classList返回一個(gè)偽數(shù)組,成員是當(dāng)前元素節(jié)點(diǎn)的每個(gè)class
  • Element.innerHTML屬性返回一個(gè)字符串,等同于該元素包含的所有 HTML 代碼。
  • Element.clientHeight屬性返回一個(gè)整數(shù)值,表示元素節(jié)點(diǎn)的 CSS 高度
  • Element.clientWidth屬性返回元素節(jié)點(diǎn)的 CSS 寬度,同樣只對(duì)塊級(jí)元素
  • Element.scrollHeight屬性返回一個(gè)整數(shù)值(小數(shù)會(huì)四舍五入),表示當(dāng)前元素的總高度(單位像素),包括溢出容器、當(dāng)前不可見(jiàn)的部分。
  • Element.scrollWidth屬性表示當(dāng)前元素的總寬度(單位像素),其他地方都與scrollHeight屬性類(lèi)似。
  • Element.children屬性返回一個(gè)類(lèi)似數(shù)組的對(duì)象(HTMLCollection實(shí)例),包括當(dāng)前元素節(jié)點(diǎn)的所有子元素。
  • Element.childElementCount屬性返回當(dāng)前元素節(jié)點(diǎn)包含的子元素節(jié)點(diǎn)的個(gè)數(shù),與Element.children.length的值相同。
  • ……

2、方法

  • getAttribute()讀取某個(gè)屬性的值
  • getAttributeNames()返回當(dāng)前元素的所有屬性名
  • setAttribute()寫(xiě)入屬性值
  • hasAttribute()某個(gè)屬性是否存在
  • hasAttributes()當(dāng)前元素是否有屬性
  • removeAttribute()刪除屬性
  • Element.querySelector接受 CSS 選擇器作為參數(shù),返回父元素的第一個(gè)匹配的子元素。
  • Element.querySelectorAll接受 CSS 選擇器作為參數(shù),返回一個(gè)NodeList實(shí)例,包含所有匹配的子元素。
  • Element.remove方法繼承自 ChildNode 接口,用于將當(dāng)前元素節(jié)點(diǎn)從它的父節(jié)點(diǎn)移除。
  • Element.getBoundingClientRect方法返回一個(gè)對(duì)象,提供當(dāng)前元素節(jié)點(diǎn)的大小、位置等信息,基本上就是 CSS 盒狀模型的所有信息
  • Element.addEventListener():添加事件的回調(diào)函數(shù)
  • Element.removeEventListener():移除事件監(jiān)聽(tīng)函數(shù)
  • Element.dispatchEvent():觸發(fā)事件
  • ……
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • ??DOM(文檔對(duì)象模型)是針對(duì) HTML 和 XML 文檔的一個(gè) API(應(yīng)用程序編程接口)。 ??DOM 描繪...
    霜天曉閱讀 3,690評(píng)論 0 7
  • 收集于網(wǎng)絡(luò),特此整理。 多看看API,總是沒(méi)壞處~ 一、節(jié)點(diǎn) 1.1 節(jié)點(diǎn)屬性 Node.nodeName //...
    前端程序猿阿旭閱讀 5,424評(píng)論 1 1
  • 第3章 基本概念 3.1 語(yǔ)法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類(lèi)型 5種簡(jiǎn)單數(shù)據(jù)類(lèi)型:Unde...
    RickCole閱讀 5,161評(píng)論 0 21
  • 原文 https://www.kancloud.cn/dennis/tgjavascript/241852 一、節(jié)...
    LuckyS007閱讀 863評(píng)論 0 0
  • API集錦,需要用時(shí)查閱用。 一、節(jié)點(diǎn)1.1 節(jié)點(diǎn)屬性 Node.nodeName //返回節(jié)點(diǎn)名稱(chēng),只讀Node...
    littleyu閱讀 2,695評(píng)論 0 8