Javascript向上遍历DOM

Javascript向上遍历DOM,javascript,dom,Javascript,Dom,在jQuery中,向上遍历DOM几步,而不是 $(this).parent().parent().parent().parent().parent().click(); 我可以写简短的版本: $(this).parent(5).click(); 所以,我想知道,是否有办法缩短代码而不是滥发“.parentNode”?非常简单: 函数父级(元素,n=1){ 设{parentNode}=元素; 对于(设i=1;parentNode&&i

在jQuery中,向上遍历DOM几步,而不是

 $(this).parent().parent().parent().parent().parent().click();
我可以写简短的版本:

 $(this).parent(5).click();
所以,我想知道,是否有办法缩短代码而不是滥发“.parentNode”?

非常简单:

函数父级(元素,n=1){
设{parentNode}=元素;
对于(设i=1;parentNode&&i
你好,世界!
相当琐碎:

函数父级(元素,n=1){
设{parentNode}=元素;
对于(设i=1;parentNode&&i
你好,世界!

巫师的一句话。。。 它和@petermader一样,只是短了一点。我想这里不太需要超级显式,因为这可能只是一个导入的实用程序函数,它仍然比for循环更可靠

const getParentElement = ({ parentNode }, n = 1) =>
  Array.from({ length: n - 1 }, () => ({ parentNode } = parentNode)) && parentNode

巫师的一句台词。。。 它和@petermader一样,只是短了一点。我想这里不太需要超级显式,因为这可能只是一个导入的实用程序函数,它仍然比for循环更可靠

const getParentElement = ({ parentNode }, n = 1) =>
  Array.from({ length: n - 1 }, () => ({ parentNode } = parentNode)) && parentNode

我个人避免使用
parent()。我强烈建议-查找与选择器匹配的最近元素:
$(this.nextest('div.some-class')
…您是否尝试过使用循环?可能与jQuery使用循环的方式相同:编写一个循环
.parentNode
n次的函数。我个人避免使用
parent()
,除非很少使用。我强烈建议-查找与选择器匹配的最近元素:
$(this.nextest('div.some-class')…您是否尝试过使用循环?可能与jQuery的使用方式相同:编写一个函数,循环
.parentNode
n次。哇,您能简要解释一下代码吗?为什么要在
for
循环中检查
parent
,为什么
({parentNode}=parentNode)
?我读到了关于对象/数组的解构,但我不明白。父对象的
是一个输入错误。我应该是
parentNode
parentNode&&I
到底做什么?和
let{parentNode}=element也是。以及
parentNode
{parentNode}
之间的区别。对象解构现在在我上面…好的,到目前为止还不错。我已经设法解决了困扰我的问题(我的代码现在又好又短),所以非常感谢。但是,你知道如何链接该功能吗?我尝试了
this.parent(5).style.display='none;',它忽略了我。哇,你能简单解释一下代码吗?为什么要在
for
循环中检查
parent
,为什么
({parentNode}=parentNode)
?我读到了关于对象/数组的解构,但我不明白。父对象的
是一个输入错误。我应该是
parentNode
parentNode&&I
到底做什么?和
let{parentNode}=element也是。以及
parentNode
{parentNode}
之间的区别。对象解构现在在我上面…好的,到目前为止还不错。我已经设法解决了困扰我的问题(我的代码现在又好又短),所以非常感谢。但是,你知道如何链接该功能吗?我尝试了
this.parent(5).style.display='none;',它忽略了我。