要求:

  1. 获得下一个/上一个兄弟元素节点,不包括文本节点等
  2. 解决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>

相关文章:

  • 2021-07-10
  • 2021-09-17
  • 2021-12-10
猜你喜欢
  • 2021-09-17
  • 2021-09-17
  • 2021-08-10
  • 2022-01-25
  • 2021-09-17
  • 2021-12-26
相关资源
相似解决方案