Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取元素的所有父元素,包括元素本身_Javascript_Jquery - Fatal编程技术网

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();