我的意思是一大堆。这是一个从顶部HTML到目标元素的链,包括元素本身。
例如,对于元素<A>
,它将是:
[HTML, BODY, DIV, DIV, P, SPAN, A]
发布于 2012-01-04 23:23:46
更短一点(也更安全,因为可能找不到target
):
var a = document.getElementById("target");
var els = [];
while (a) {
els.unshift(a);
a = a.parentNode;
}
发布于 2012-01-04 23:20:56
您可以尝试执行以下操作:
var nodes = [];
var element = document.getElementById('yourelement');
nodes.push(element);
while(element.parentNode) {
nodes.unshift(element.parentNode);
element = element.parentNode;
}
发布于 2020-09-18 16:59:05
我喜欢这个方法:
[...(function*(e){do { yield e; } while (e = e.parentNode);})($0)]
..。其中$0是您的元素。
这种方法的一个优点是,它可以用作表达式中的值。
要获取不带目标元素的数组:
[...(function*(e){while (e = e.parentNode) { yield e; }})($0)]
https://stackoverflow.com/questions/8729193
复制相似问题