要求:
- 获得下一个/上一个兄弟元素节点,不包括文本节点等
- 解决IE兼容性问题
代码实现:
获得下一个兄弟元素节点:
function getNextElement(element) {
var el = element;
while (el = el.nextSibling) {
if (el.nodeType === 1) {
return el;
}
}
return null;
}
获得上一个兄弟元素节点:
function getPrevElement(element) {
var el = element;
while (el = el.previousSibling) {
if (el.nodeType === 1) {
return el;
}
}
return null;
}
实现效果:
有如下两兄弟标签:
<div>div</div>
<span>span</span>
获得下一个兄弟元素节点:
输入:
var div = document.querySelector('div');
console.log(getNextElement(div));
输出:
<span>span</span>
获得上一个兄弟元素节点:
输入:
var span = document.querySelector('span');
console.log(getPrevElement(span));
输出:
<div>div</div>