NonDocumentTypeChildNode.nextElementSibling
read-only property returns the element immediately following the specified one in its parent's children list, or
null
if the specified element is the last one in the list.
var nextNode = elementNodeReference.nextElementSibling;
<div id="div-01">Here is div-01</div>
<div id="div-02">Here is div-02</div>
<script type="text/javascript">
var el = document.getElementById('div-01').nextElementSibling;
console.log('Siblings of div-01:');
while (el) {
console.log(el.nodeName);
el = el.nextElementSibling;
}
</script>
This example outputs the following into the console when it loads:
Siblings of div-01: DIV SCRIPT
This property is unsupported prior to IE9, so the following snippet can be used to add support to IE8:
// Source: https://github.com/Alhadis/Snippets/blob/master/js/polyfills/IE8-child-elements.js
if(!("nextElementSibling" in document.documentElement)){
Object.defineProperty(Element.prototype, "nextElementSibling", {
get: function(){
var e = this.nextSibling;
while(e && 1 !== e.nodeType)
e = e.nextSibling;
return e;
}
});
}
// Source: https://github.com/jserz/js_piece/blob/master/DOM/NonDocumentTypeChildNode/nextElementSibling/nextElementSibling.md
(function (arr) {
arr.forEach(function (item) {
if (item.hasOwnProperty('nextElementSibling')) {
return;
}
Object.defineProperty(item, 'nextElementSibling', {
configurable: true,
enumerable: true,
get: function () {
var el = this;
while (el = el.nextSibling) {
if (el.nodeType === 1) {
return el;
}
}
return null;
},
set: undefined
});
});
})([Element.prototype, CharacterData.prototype]);
| 规范 | 状态 | 注释 |
|---|---|---|
|
DOM
The definition of 'ChildNodenextElementSibling' in that specification. |
实时标准 |
Split the
ElementTraversal
interface in
ChildNode
,
ParentNode
,和
NonDocumentTypeChildNode
. This method is now defined on the former.
元素
and
CharacterData
interfaces implemented the new interface.
|
|
Element Traversal Specification
The definition of 'ElementTraversal.nextElementSibling' in that specification. |
过时 |
Added its initial definition to the
ElementTraversal
pure interface and use it on
元素
.
|
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
nextElementSibling
|
Chrome 4 |
Edge
12
注意事项
|
Firefox 3.5 |
IE
部分支持
9
注意事项
|
Opera 10 | Safari 4 | WebView Android Yes | Chrome Android Yes | Firefox Android 4 | Opera Android 10.1 | Safari iOS Yes | Samsung Internet Android Yes |
完整支持
部分支持
见实现注意事项。
ParentNode.firstElementChild
ParentNode.lastElementChild
ChildNode
纯接口。
CharacterData
,
元素
,和
DocumentType
.
NonDocumentTypeChildNode
nextElementSibling
previousElementSibling
AbortController
AbortSignal
AbstractRange
Attr
ByteString
CDATASection
CSSPrimitiveValue
CSSValue
CSSValueList
CharacterData
ChildNode
注释
CustomEvent
DOMConfiguration
DOMError
DOMErrorHandler
DOMException
DOMImplementation
DOMImplementationList
DOMImplementationRegistry
DOMImplementationSource
DOMLocator
DOMObject
DOMParser
DOMPoint
DOMPointInit
DOMPointReadOnly
DOMRect
DOMString
DOMTimeStamp
DOMTokenList
DOMUserData
Document
DocumentFragment
DocumentType
元素
ElementTraversal
Entity
EntityReference
事件
EventTarget
HTMLCollection
MutationObserver
节点
NodeFilter
NodeIterator
NodeList
ProcessingInstruction
PromiseResolver
范围
StaticRange
文本
TextDecoder
TextEncoder
TimeRanges
TreeWalker
TypeInfo
USVString
UserDataHandler
XMLDocument