如何使用JavaScript获取最后一个同级元素?

5

虽然有一个原生的“nextSibling”属性,但是如何获取“lastSibling”呢?

6个回答

5

处理DOM事件的几个函数

来自文章

function lastSibling(node){
    var tempObj=node.parentNode.lastChild; 
    while(tempObj.nodeType!=1 && tempObj.previousSibling!=null){  
    tempObj=tempObj.previousSibling;   
    }  
    return (tempObj.nodeType==1)?tempObj:false; 
}

5
也许:
Node.parentNode.lastChild

希望这能帮到您!

这个问题与此无关。另外,由于作者表达了对nextSibling属性的认识,我认为他也意识到了文档遍历和存在不同类型节点的影响。 - Sergey Ilinsky

2
您可以使用querySelector来实现这一点:
   function lastSibling(node) {
       return node === node.parentNode.querySelector(node.nodeName + ':last-of-type');
   }

1

没有直接访问最后一个兄弟的方法;你只需要遍历所有兄弟直到到达最后一个。


1
node.children[node.children.length - 1]

0
这应该与nextElementSibling的工作方式相同,但方向相反。
console.log(node.previousElementSibling.className);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接