JavaScript使用prevAll像jQuery?

时间:2015-07-03 13:17:57

标签: javascript html

如何在JavaScript中实现这一目标?

function prevAll (element) {
    // some code to take all siblings before element?
    return elements;
};

2 个答案:

答案 0 :(得分:4)

使用previousSibling属性,循环直到它为空。

答案 1 :(得分:4)

使用.previousElementSibling,您可以获得前一个节点,它是一个实际元素(不是文本节点或注释)

function prevAll(element) {
    var result = [];

    while (element = element.previousElementSibling)
        result.push(element);
    return result;
}

如果需要,可以在IE8中对.previousElementSibling属性进行polyfilled。

我应该注意到IIRC,jQuery按文档顺序返回元素。如果是这种情况,如果这是你需要的,那么当你返回时只需.reverse()数组。