如何在JavaScript中实现这一目标?
function prevAll (element) {
// some code to take all siblings before element?
return elements;
};
答案 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()
数组。