Javascript 如何在分配多个属性时不重复我自己

Javascript 如何在分配多个属性时不重复我自己,javascript,dom-events,Javascript,Dom Events,我有一个事件监听器,带有回调函数event的参数,分配给一个元素。有没有什么方法可以选择该元素的第五个父元素,而无需写下此代码 event.target.parentNode.parentNode.parentNode.parentNode.parentNode; 没有第n个parent方法,因此您必须执行一组parentNode,或者使用它遍历DOM树,直到找到匹配项为止。因此,你会发现它的独特之处并加以利用 document.querySelector(“输入”).addEventLis

我有一个事件监听器,带有回调函数
event
的参数,分配给一个元素。有没有什么方法可以选择该元素的第五个父元素,而无需写下此代码

event.target.parentNode.parentNode.parentNode.parentNode.parentNode;

没有第n个parent方法,因此您必须执行一组parentNode,或者使用它遍历DOM树,直到找到匹配项为止。因此,你会发现它的独特之处并加以利用

document.querySelector(“输入”).addEventListener(“输入”,函数(evt){
常量行=evt.target.closest('.row');
控制台日志(行);
});

没有第n个parent方法,因此您必须执行一组parentNode,或者使用它遍历DOM树,直到找到匹配项为止。因此,你会发现它的独特之处并加以利用

document.querySelector(“输入”).addEventListener(“输入”,函数(evt){
常量行=evt.target.closest('.row');
控制台日志(行);
});

如果您知道需要遍历的父元素链的确切数量,那么您可以实现simple helper

const takeParent=(目标,计数)=>{
而(--count>=0){
如果(目标===文档){
打破
}
target=target.parentNode;
}
回报目标;
};
takeParent(myElement,5);//如果有少于5个家长,则提供myElement的第5个家长或“文件”

如果您知道需要遍历的父元素链的确切数量,那么您可以实现simple helper

const takeParent=(目标,计数)=>{
而(--count>=0){
如果(目标===文档){
打破
}
target=target.parentNode;
}
回报目标;
};
takeParent(myElement,5);//如果有少于5个家长,则提供myElement的第5个家长或“文件”

当然,有几种方法可以实现这一点

I.JQuery方法:

$('#element1').parents().eq(5);
二,。原始Javascript

Function returnNthParent(n, element) 
{
 parent = element;
    for (i = 0; i < n; i++) 
    {
       parent = parent.parentNode;
    }
 return parent;
}
函数returnNthParent(n,元素)
{
父元素=元素;
对于(i=0;i
当然,有几种方法可以实现这一点

I.JQuery方法:

$('#element1').parents().eq(5);
二,。原始Javascript

Function returnNthParent(n, element) 
{
 parent = element;
    for (i = 0; i < n; i++) 
    {
       parent = parent.parentNode;
    }
 return parent;
}
函数returnNthParent(n,元素)
{
父元素=元素;
对于(i=0;i
我没有要求这样做,这就是你不需要重复自己就能做到的方法。这是你自找的找到元素的第五个父元素的一些独特之处,并将其作为目标。一旦有人来重组HTML,以“第五位家长”为目标将破坏您的代码。这是一种非常脆弱的编程方法。。你是对的。。对不起,我不是自找麻烦的,这就是你不用重复自己就能做到的。这是你自找的找到元素的第五个父元素的一些独特之处,并将其作为目标。一旦有人来重组HTML,以“第五位家长”为目标将破坏您的代码。这是一种非常脆弱的编程方法。。你是对的。。很抱歉