中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

探索JavaScript之DOM的世界

發布時間:2020-03-03 00:06:44 來源:網絡 閱讀:206 作者:小學生學ui 欄目:開發技術

1990年代后期微軟與Netscape的“瀏覽器大戰”?,雙方為了在JavaScriptJScript一決生死,于是大規模的賦予瀏覽器強大的功能。微軟在網頁技術上加入了不少專屬事物,計有VBScriptActiveX、以及微軟自家的DHTML格式等,使不少網頁使用非微軟平臺及瀏覽器無法正常顯示。DOM即是當時蘊釀出來的杰作。現在我們就來一起了解一下關于JavaScript-DOM的世界。

?

DOM的增加

DOM操作中指的是增加節點,分為兩部分:創建節點插入節點

創建節點

創建節點中常用的API方法主要有:

1.?document.createElement():創建指定的HTML元素

2.?document.createTextNode():創建文本節點

3.?document.createDocumentFrame():創建文檔片段

4.?document.createAttribute():創建節點屬性

5.?node.cloneNode():克隆節點

插入節點###

插入節點常用的API方法主要有:

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

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

<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>

例子解釋:

這段代碼創建新的 <p>元素:

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

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

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

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

para.appendChild(node);

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

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

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

element.appendChild(para);

關于document.createAttribute()

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

<div id="div1">

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

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

</div>

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

?

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

node.setAttributeNode(attr); //運用到對應的元素節點上

關于node.cloneNode()

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

<div id="div1">

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

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

</div>

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

?

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

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

DOM的刪除

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

注意事項:這個方法是要在被刪除的節點的父節點上調用的,而不是在被刪除節點上調用的,如果參數節點不是當前節點的子節點,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 文檔含有擁有兩個子節點(兩個<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的修改

修改節點常用的API方法主要有:

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

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

3.?replaceChild():替換節點

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

DOM的查找

DOM節點中的查主要包括:查找元素節點查找

查找元素

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

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

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

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

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

關于這一節的內容,可以訪問上一篇文章:JavaScript-DOM訪問方式

節點查找

所有的節點都有這些屬性,都是可以用于訪問相關的node節點:

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

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

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

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

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

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

總結

?


這些就是本期進行的dom的增、刪、改、查操作,當然可能并不夠全面,還有很多細節需要大家繼續研究,如果大家對此感興趣的話,不妨關注我們,接下來還有更多的內容會和大家分享。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

习水县| 潜江市| 池州市| 宁城县| 余干县| 林芝县| 阿合奇县| 德惠市| 辉南县| 吐鲁番市| 澄城县| 都匀市| 乌兰察布市| 和林格尔县| 乌鲁木齐市| 龙里县| 紫云| 铜鼓县| 永济市| 鹤壁市| 彰化市| 安图县| 沙洋县| 波密县| 巴里| 大同市| 株洲县| 开阳县| 浪卡子县| 伊通| 墨脱县| 中方县| 德清县| 永安市| 长春市| 黔西| 始兴县| 古田县| 阿克陶县| 黄龙县| 本溪市|