摘要:對(duì)象提供了一系列的屬性和方法用來(lái)利用元素樹(shù)結(jié)構(gòu)中元素的關(guān)系實(shí)現(xiàn)遍歷其中的元素。關(guān)于元素之間的關(guān)系,可以參考元素樹(shù)一節(jié)有關(guān)元素之間關(guān)系的內(nèi)容。該屬性獲取一個(gè)包含指定元素的所有子元素的集合。值得注意的是如果當(dāng)前元素?zé)o子節(jié)點(diǎn),則屬性返回。
Element 對(duì)象提供了一系列的屬性和方法用來(lái)利用 DOM 元素樹(shù)結(jié)構(gòu)中元素的關(guān)系實(shí)現(xiàn)遍歷其中的元素。
獲取子元素關(guān)于元素之間的關(guān)系,可以參考《DOM 元素樹(shù)》一節(jié)有關(guān)元素之間關(guān)系的內(nèi)容。
通過(guò) HTML 頁(yè)面中指定元素查找其子元素,我們可以通過(guò)以下 Element 對(duì)象的屬性實(shí)現(xiàn):
屬性名 | 描述 |
---|---|
children | 獲取指定元素的所有子元素 |
firstElementChild | 獲取指定元素的第一個(gè)子元素 |
lastElementChild | 獲取指定元素的最后一個(gè)子元素 |
獲取所有子元素值得注意的是: HTML 頁(yè)面中某個(gè)元素的子元素不一定是唯一的。
Element 對(duì)象提供了 children 屬性用于獲取 HTML 頁(yè)面中指定節(jié)點(diǎn)的所有子元素:
var elList = element.children;
在上述語(yǔ)法結(jié)構(gòu)中,children 屬性的返回值 elList 是一個(gè) HTMLCollection 對(duì)象,并且為只讀。該屬性獲取一個(gè)包含指定元素的所有子元素的集合。
以下代碼示例,就是通過(guò)指定元素獲取其所有子元素,再實(shí)現(xiàn)其他操作的:
var parentElem = document.getElementById("parent"); var children = parentElem.children; console.log(children);獲取所有子元素的個(gè)數(shù)
Element 對(duì)象提供了 childElementCount 屬性用于獲取指定元素的所有子元素的個(gè)數(shù):
var count = element.childElementCount;
在上述語(yǔ)法結(jié)構(gòu)中,childElementCount 屬性返回的 count 表示指定元素的所有子元素的個(gè)數(shù)。
以下代碼示例,就是通過(guò)指定元素獲取其所有子元素的個(gè)數(shù),再實(shí)現(xiàn)其他操作的:
var parentElem = document.getElementById("parent"); var count = parentElem.childElementCount; console.log(count);獲取第一個(gè)子元素
Element 對(duì)象提供了 firstElementChild 屬性用于獲取指定元素的第一個(gè)子元素:
var first_child = element.firstElementChild;
在上述語(yǔ)法結(jié)構(gòu)中,firstElementChild 屬性返回的 first_child 表示當(dāng)前元素的第一個(gè)子元素的引用。
值得注意的是: 如果當(dāng)前元素?zé)o子節(jié)點(diǎn),則 firstElementChild 屬性返回?null。
以下代碼示例,就是通過(guò)指定元素獲取其第一個(gè)子元素,再實(shí)現(xiàn)其他操作的:
var parentElem = document.getElementById("parent"); var firstChild = parentElem.firstElementChild; console.log(firstChild);獲取最后一個(gè)元素
Element 對(duì)象提供了 lastElementChild 屬性用于獲取指定元素的最后一個(gè)子元素:
var last_child = node.lastElementChild;
在上述語(yǔ)法結(jié)構(gòu)中,lastElementChild 屬性返回的 last_child 表示當(dāng)前元素的最后一個(gè)子元素的引用。
值得注意的是: 如果當(dāng)前節(jié)點(diǎn)無(wú)子元素,則 lastElementChild 屬性返回?null。
以下代碼示例,就是通過(guò)指定元素獲取其最后一個(gè)子元素,再實(shí)現(xiàn)其他操作的:
var parentElem = document.getElementById("parent"); var lastChild = parentElem.lastElementChild; console.log(lastChild);獲取相鄰兄弟元素
通過(guò) HTML 頁(yè)面中指定元素查找其相鄰兄弟元素,我們可以通過(guò)以下 Element 對(duì)象的屬性實(shí)現(xiàn):
屬性名 | 描述 |
---|---|
previousElementSibling | 獲取指定元素的前面相鄰兄弟元素 |
nextElementSibling | 獲取指定元素的后面相鄰兄弟元素 |
Element 對(duì)象提供了 previousElementSibling 屬性用于獲取指定元素的前面相鄰兄弟元素:
previousElem = element.previousElementSibling;
在上述語(yǔ)法結(jié)構(gòu)中,previousElementSibling 屬性返回的 previousElem 表示當(dāng)前元素的前一個(gè)兄弟元素。
值得注意的是: 如果當(dāng)前節(jié)點(diǎn)無(wú)前一個(gè)兄弟元素,則 previousElementSibling 屬性返回?null。
以下代碼示例,就是通過(guò)指定元素獲取其前面相鄰兄弟元素,再實(shí)現(xiàn)其他操作的:
var btn = document.getElementById("btn"); var previousElem = btn.previousElementSibling; console.log(previousElem);獲取相鄰后面兄弟元素
Element 對(duì)象提供了 nextElementSibling 屬性用于獲取指定元素的后面相鄰兄弟元素:
nextElem = element.nextElementSibling;
在上述語(yǔ)法結(jié)構(gòu)中,nextElementSibling 屬性返回的 nextElem 表示當(dāng)前元素的后一個(gè)兄弟元素。
值得注意的是: 如果當(dāng)前節(jié)點(diǎn)無(wú)后一個(gè)兄弟元素,則 nextElementSibling 屬性返回?null。
以下代碼示例,就是通過(guò)指定元素獲取其后面相鄰兄弟元素,再實(shí)現(xiàn)其他操作的:
var btn = document.getElementById("btn"); var nextElem = btn.nextElementSibling; console.log(nextElem);瀏覽器兼容問(wèn)題
上述 Element 對(duì)象的遍歷元素屬性中,除 children 外,其他屬性均不支持 IE 8 及之前版本的瀏覽器:
childElementCount
firstElementChild
lastElementChild
previousElementSibling
nextElementSbling
瀏覽器兼容問(wèn)題解決方案我們可以通過(guò)自定義 JavaScript 文件方式,實(shí)現(xiàn)瀏覽器兼容問(wèn)題。如以下代碼示例:
/** * Adds support to IE8 for the following properties: * * Element.childElementCount * Element.firstElementChild * Element.lastElementChild * Element.nextElementSibling * Element.previousElementSibling */ (function(){ "use strict"; var patches = { firstElementChild: function(){ for(var nodes = this.children, n, i = 0, l = nodes.length; i < l; ++i) if(n = nodes[i], 1 === n.nodeType) return n; return null; }, lastElementChild: function(){ for(var nodes = this.children, n, i = nodes.length - 1; i >= 0; --i) if(n = nodes[i], 1 === n.nodeType) return n; return null; }, nextElementSibling: function(){ var e = this.nextSibling; while(e && 1 !== e.nodeType) e = e.nextSibling; return e; }, previousElementSibling: function(){ var e = this.previousSibling; while(e && 1 !== e.nodeType) e = e.previousSibling; return e; }, childElementCount: function(){ for(var c = 0, nodes = this.children, n, i = 0, l = nodes.length; i < l; ++i) (n = nodes[i], 1 === n.nodeType) && ++c; return c; } }; for(var i in patches) i in document.documentElement || Object.defineProperty(Element.prototype, i, {get: patches[i]}); }());
需要說(shuō)明的是: 上述瀏覽器兼容問(wèn)題的解決方案是由 Snippets 開(kāi)源項(xiàng)目提供的。
本教程免費(fèi)開(kāi)源,任何人都可以免費(fèi)學(xué)習(xí)、分享,甚至可以進(jìn)行修改。但需要注明作者及來(lái)源,并且不能用于商業(yè)。
本教程采用知識(shí)共享署名-非商業(yè)性使用-禁止演繹 4.0 國(guó)際許可協(xié)議進(jìn)行許可。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/87329.html
摘要:回顧什么是內(nèi)聯(lián)樣式所謂內(nèi)聯(lián)樣式,就是通過(guò)頁(yè)面元素的屬性為當(dāng)前元素定義樣式。對(duì)象提供的屬性和方法可以幫助我們獲取樣式的具體內(nèi)容。遍歷對(duì)象由于對(duì)象具有屬性,返回該對(duì)象的屬性的數(shù)量。方法通過(guò)獲取的樣式屬性名,這種方式也可以通過(guò)方式進(jìn)行替換。 回顧什么是內(nèi)聯(lián)樣式 所謂內(nèi)聯(lián)樣式,就是通過(guò) HTML 頁(yè)面元素的 style 屬性為當(dāng)前元素定義 CSS 樣式。 以下代碼示例,就是通過(guò) style 屬...
摘要:對(duì)象提供了屬性和方法實(shí)現(xiàn)定位頁(yè)面元素功能,這也是的標(biāo)準(zhǔn)規(guī)范中對(duì)象的主要應(yīng)用之一。是返回值,表示定位元素的集合,是一個(gè)集合。定位匹配選擇器的第一個(gè)元素。方法定位頁(yè)面元素所返回的集合就是靜態(tài)集合。 Document 對(duì)象提供了屬性和方法實(shí)現(xiàn)定位頁(yè)面元素功能,這也是 DOM 的標(biāo)準(zhǔn)規(guī)范中 Document 對(duì)象的主要應(yīng)用之一。 定位頁(yè)面元素方法 目前 Document 對(duì)象提供實(shí)現(xiàn)定位頁(yè)面元...
摘要:對(duì)象提供了屬性和方法實(shí)現(xiàn)定位頁(yè)面元素功能。定位匹配選擇器的第一個(gè)元素。是返回值,表示定位元素的集合,是一個(gè)集合。下面是使用方法的示例代碼循環(huán)遍歷所有元素上述代碼通過(guò)方法定位頁(yè)面中元素名為的元素,并遍歷所有得到的元素,為其元素的屬性添加樣式。 Element 對(duì)象提供了屬性和方法實(shí)現(xiàn)定位頁(yè)面元素功能。該對(duì)象與 Document 對(duì)象提供的屬性和方法實(shí)現(xiàn)定位頁(yè)面元素功能的區(qū)別在于,Docu...
摘要:而標(biāo)準(zhǔn)規(guī)范中提供了對(duì)象,主要是依靠元素樹(shù)結(jié)構(gòu)訪問(wèn)和更新頁(yè)面的內(nèi)容。值得注意的是所有的頁(yè)面的元素都是對(duì)象,而這個(gè)對(duì)象又是繼承于對(duì)象的。我們可以簡(jiǎn)單地理解對(duì)象是對(duì)象的補(bǔ)充。本教程采用知識(shí)共享署名非商業(yè)性使用禁止演繹國(guó)際許可協(xié)議進(jìn)行許可。 DOM 的標(biāo)準(zhǔn)規(guī)范中提供了 Element 對(duì)象,該對(duì)象提供了 HTML 頁(yè)面中所有元素所具有的屬性和方法。 我們都知道 DOM 標(biāo)準(zhǔn)規(guī)范中提供了 Nod...
摘要:對(duì)象提供了一系列的屬性和方法用來(lái)利用節(jié)點(diǎn)樹(shù)結(jié)構(gòu)中節(jié)點(diǎn)的關(guān)系實(shí)現(xiàn)遍歷其中的節(jié)點(diǎn)。在上述語(yǔ)法結(jié)構(gòu)中,屬性返回指定節(jié)點(diǎn)的父元素節(jié)點(diǎn)。該屬性獲取一個(gè)包含指定節(jié)點(diǎn)的所有子節(jié)點(diǎn)的集合。值得注意的是及之前版本的瀏覽器中不存在空白節(jié)點(diǎn)問(wèn)題。 Node 對(duì)象提供了一系列的屬性和方法用來(lái)利用 DOM 節(jié)點(diǎn)樹(shù)結(jié)構(gòu)中節(jié)點(diǎn)的關(guān)系實(shí)現(xiàn)遍歷其中的節(jié)點(diǎn)。 關(guān)于節(jié)點(diǎn)之間的關(guān)系,可以參考《DOM樹(shù)結(jié)構(gòu)》一節(jié)有關(guān)節(jié)點(diǎn)之間關(guān)...
閱讀 2289·2021-11-24 09:38
閱讀 1986·2021-11-22 14:44
閱讀 1150·2021-07-29 13:48
閱讀 2615·2019-08-29 13:20
閱讀 1115·2019-08-29 11:08
閱讀 2046·2019-08-26 10:58
閱讀 1264·2019-08-26 10:55
閱讀 3149·2019-08-26 10:39