中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

DOM在JavaScript的應(yīng)用-創(chuàng)新互聯(lián)

DOM= Document Object Model,文檔對象模型,DOM可以以一種獨立于平臺和語言的方式訪問和修改一個文檔的內(nèi)容和結(jié)構(gòu)。換句話說,這是表示和處理一個HTML或XML文檔的常用方法。有一點很重要,DOM的設(shè)計是以對象管理組織(OMG)的規(guī)約為基礎(chǔ)的,因此可以用于任何編程語言。最初人們把它認為是一種讓JavaScript在瀏覽器間可移植的方法,不過DOM的應(yīng)用已經(jīng)遠遠超出這個范圍。Dom技術(shù)使得用戶頁面可以動態(tài)地變化,如可以動態(tài)地顯示或隱藏一個元素,改變它們的屬性,增加一個元素等,Dom技術(shù)使得頁面的交互性大大地增強。

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)閩清,10余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

DOM的增加

DOM操作中指的是增加節(jié)點,分為兩部分:創(chuàng)建節(jié)點插入節(jié)點

創(chuàng)建節(jié)點

創(chuàng)建節(jié)點中常用的API方法主要有:

1. document.createElement():創(chuàng)建指定的HTML元素

2. document.createTextNode():創(chuàng)建文本節(jié)點

3. document.createDocumentFrame():創(chuàng)建文檔片段

4. document.createAttribute():創(chuàng)建節(jié)點屬性

5. node.cloneNode():克隆節(jié)點

插入節(jié)點###

插入節(jié)點常用的API方法主要有:

1. node.appendChild():末尾追加一個新節(jié)點

2. node.insertBefore():插入一個新節(jié)點

<div id="div1"><p id="p1">這是一個段落</p><p id="p2">這是另一個段落</p></div>

<script>var para=document.createElement("p");var node=document.createTextNode("這是新段落。");

para.appendChild(node);

var element=document.getElementById("div1");

element.appendChild(para);</script>

例子解釋:

這段代碼創(chuàng)建新的<p>元素:

 var para=document.createElement("p");

如需向<p>元素添加文本,您必須首先創(chuàng)建文本節(jié)點。這段代碼創(chuàng)建了一個文本節(jié)點:

var node=document.createTextNode("這是新段落。");

然后您必須向<p>元素追加這個文本節(jié)點:

para.appendChild(node);

最后您必須向一個已有的元素追加這個新元素。
這段代碼找到一個已有的元素:

var element=document.getElementById("div1");

這段代碼向這個已有的元素追加新元素:

element.appendChild(para);

關(guān)于document.createAttribute()

document.createAttribute() 方法創(chuàng)建并返回一個新的屬性節(jié)點。但是這個方法不是很常用,如果涉及到創(chuàng)建屬性,一般使用node.setAttribute() 。

<div id="div1">

<p id="p1">這是一個段落</p>

<p id="p2">這是另一個段落</p>

</div>

var node = document.getElementById('div1');var newAttr = document.createAttribute('title');  //創(chuàng)建一個新的title屬性;

newAttr .nodeValue ='Hello world!';  //title屬性的值是:Hello world!

node.setAttributeNode(attr);//運用到對應(yīng)的元素節(jié)點上

關(guān)于node.cloneNode()

node.cloneNode(deep) 方法返回該節(jié)點的一個副本,deep 可選,表明是否采用深度克隆,如果為true ,則該節(jié)點的所有后代節(jié)點也都會被克隆,否則,只克隆該節(jié)點本身。

<div id="div1">

<p id="p1">這是一個段落</p>

<p id="p2">這是另一個段落</p>

</div>

var node = document.getElementById('div1');var cloneNode = node.cloneNode(true);//克隆div1整個節(jié)點;

cloneNode.id ="div2";//修改克隆的節(jié)點id名稱為div2;

document.body.appendChild(cloneNode);//在網(wǎng)頁中追加克隆的節(jié)點;

DOM的刪除

DOM節(jié)點的刪除主要API是node.removeChild();可以使用parentNode.removeChild(child)刪除指定父節(jié)點parentNode的一個子節(jié)點child,并返回被刪除的節(jié)點。

注意事項:這個方法是要在被刪除的節(jié)點的父節(jié)點上調(diào)用的,而不是在被刪除節(jié)點上調(diào)用的,如果參數(shù)節(jié)點不是當前節(jié)點的子節(jié)點,removeChild 方法將報錯。

<div id="div1"><p id="p1">這是一個段落。</p><p id="p2">這是另一個段落。</p></div>

<script>var parent=document.getElementById("div1");var child=document.getElementById("p1");

parent.removeChild(child);</script>

例子解釋:

這個 HTML 文檔含有擁有兩個子節(jié)點(兩個<p>元素)的<div> 元素:

<div id="div1"><p id="p1">這是一個段落。</p><p id="p2">這是另一個段落。</p></div>

找到id="div1"的元素:

var parent=document.getElementById("div1");

找到id="p1" 的 <p> 元素:

var child=document.getElementById("p1");

從父元素中刪除子元素:

parent.removeChild(child);

DOM的修改

修改節(jié)點常用的API方法主要有:

1. appendChild():末尾追加一個新節(jié)點

2. insertBefore():插入一個新節(jié)點

3. replaceChild():替換節(jié)點

注意事項:以上幾個方法都是操作的某個節(jié)點的子節(jié)點,也就是說,要使用這幾個方法必須先取得父節(jié)點。另外并不是所有節(jié)點都有子節(jié)點,如果在不支持子節(jié)點的節(jié)點上,調(diào)用了這些方法,將會導致錯誤。

DOM的查找

DOM節(jié)點中的查主要包括:查找元素節(jié)點查找。

查找元素

1. getElementById() --- 通過ID訪問;

2. getElementsByClassName() --- 通過類名訪問;

3. getElementsByTagName() --- 通過標簽名稱訪問;

4. querySelector() --- 通過CSS選擇器訪問(單個);

5. querySelectorAll() --- 通過CSS選擇器訪問 (所有);

關(guān)于這一節(jié)的內(nèi)容,可以訪問上一篇文章:JavaScript-DOM訪問方式

節(jié)點查找

所有的節(jié)點都有這些屬性,都是可以用于訪問相關(guān)的node節(jié)點:

1. Node.childNodes: 訪問一個單元素下所有的直接子節(jié)點元素,可以是一個可循環(huán)的類數(shù)組對象。該節(jié)點集合可以保護不同的類型的子節(jié)點(比如text節(jié)點或其他元素節(jié)點)。

2. Node.firstChild: 與childNodes數(shù)組的第一個項(Element.childNodes[0])是同樣的效果,僅僅是快捷方式。

3. Node.lastChild: 與childNodes數(shù)組的最后一個項(Element.childNodes[Element.childNodes.length-1])是同樣的效果,僅僅是快捷方式。

4. Node.parentNode: 訪問當前節(jié)點的父節(jié)點,父節(jié)點只能有一個,祖節(jié)點可以用Node.parentNode.parentNode 的形式來訪問。

5. Node.nextSibling: 訪問DOM樹上與當前節(jié)點同級別的下一個節(jié)點。

6. Node.previousSibling: 訪問DOM樹上與當前節(jié)點同級別的上一個節(jié)點。

總結(jié)

DOM的操作在JavaScript中的重要性不言而喻,而基于DOM的操作,會關(guān)系到所有的交互操作。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當前名稱:DOM在JavaScript的應(yīng)用-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://m.rwnh.cn/article24/pogce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT品牌網(wǎng)站建設(shè)、App開發(fā)定制開發(fā)、營銷型網(wǎng)站建設(shè)用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
永丰县| 大洼县| 涞水县| 石家庄市| 奉贤区| 屯昌县| 佳木斯市| 台州市| 肇源县| 买车| 大化| 壤塘县| 汉川市| 广汉市| 马山县| 林州市| 思茅市| 北票市| 秦皇岛市| 南召县| 涿鹿县| 共和县| 张北县| 清河县| 兴文县| 北安市| 策勒县| 钦州市| 孙吴县| 株洲市| 常宁市| 安宁市| 达日县| 萨嘎县| 昌江| 靖江市| 宁海县| 岱山县| 长丰县| 崇仁县| 元江|