首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在纯javascript中获取给定元素的所有父节点?

如何在纯javascript中获取给定元素的所有父节点?
EN

Stack Overflow用户
提问于 2012-01-04 23:17:22
回答 6查看 38.7K关注 0票数 33

我的意思是一大堆。这是一个从顶部HTML到目标元素的链,包括元素本身。

例如,对于元素<A>,它将是:

代码语言:javascript
复制
[HTML, BODY, DIV, DIV, P, SPAN, A]
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-01-04 23:23:46

更短一点(也更安全,因为可能找不到target ):

代码语言:javascript
复制
var a = document.getElementById("target");
var els = [];
while (a) {
    els.unshift(a);
    a = a.parentNode;
}
票数 52
EN

Stack Overflow用户

发布于 2012-01-04 23:20:56

您可以尝试执行以下操作:

代码语言:javascript
复制
var nodes = [];
var element = document.getElementById('yourelement');
nodes.push(element);
while(element.parentNode) {
    nodes.unshift(element.parentNode);
    element = element.parentNode;
}
票数 24
EN

Stack Overflow用户

发布于 2020-09-18 16:59:05

我喜欢这个方法:

代码语言:javascript
复制
[...(function*(e){do { yield e; } while (e = e.parentNode);})($0)]

..。其中$0是您的元素。

这种方法的一个优点是,它可以用作表达式中的值。

要获取不带目标元素的数组:

代码语言:javascript
复制
[...(function*(e){while (e = e.parentNode) { yield e; }})($0)]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8729193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档