Javascript 获取元素的所有父元素,包括元素本身
我正在尝试创建一个数组,其中包含用户在内容可编辑分区中单击的所有元素Javascript 获取元素的所有父元素,包括元素本身,javascript,jquery,Javascript,Jquery,我正在尝试创建一个数组,其中包含用户在内容可编辑分区中单击的所有元素 var els = []; var target = event.target; while (target){ //Create an array of parent elements els.push(target); //Push target to the back of the array target = target.parentNode; } 但我想知道是否可以用jQuery将这一行缩
var els = [];
var target = event.target;
while (target){ //Create an array of parent elements
els.push(target); //Push target to the back of the array
target = target.parentNode;
}
但我想知道是否可以用jQuery将这一行缩减为一行。jQuery.parents()
几乎可以让我到达那里,但它不包括第一个事件。target
var els = $(event.target).parents();
是否有方法将元素本身包含在.parents()
中,或者有更好的方法 您可以使用:
或者,如果您希望它们的顺序不同:
var els = $(event.target).add($(event.target).parents());
如果您需要的是数组(即不是jQuery对象),则可以使用反向:
var els = $(event.target).parents().add(event.target).get().reverse();
怎么样
我的会得到你,曾祖父母,祖父母,父母,自我
如果您想要:self、parent、祖父母、曾祖父母,请尝试使用以下内容扩展Jquery:
$.fn.reverse = [].reverse;
然后做:
var els = `$(event.target).parents().andSelf().reverse();
示例:您可以使用
和self
来包含目标元素它返回数组的相反方向。您是否为父元素指定了一个onclick
事件?我为内容元素指定了一个click事件这似乎几乎可以做到,但您的两个方法都得到了与我所希望的相反的结果。我选择了使用Treborbob answer,但对.get()使用+1。reverse()这在与dystroy.get()结合后起作用。反向()谢谢您的帮助!
$.fn.reverse = [].reverse;
var els = `$(event.target).parents().andSelf().reverse();