如何用纯JavaScript定义第n个父元素?
如标题所示, 如何在js中以其他方式定义第n个parentElement:如何用纯JavaScript定义第n个父元素?,javascript,html,Javascript,Html,如标题所示, 如何在js中以其他方式定义第n个parentElement: var theComment = e.target.parentElement.parentElement.parentElement.parentElement; 您可以为它编写一个循环: const n=4 设elem=e.target for(设i=0;i
var theComment = e.target.parentElement.parentElement.parentElement.parentElement;
您可以为它编写一个循环:
const n=4
设elem=e.target
for(设i=0;i
但是,正如在注释中提到的,如果您正在寻找一个特定的元素,那么最好只为您正在寻找的元素编写一个选择器
这更适用于您的情况,因为
event.target
可以返回所关注元素的子节点(如果事件冒泡),从而使您的父级计数移动一点。您可以定义一个函数,该函数在父级层次结构中以循环方式向上提升,例如:
function nthParent(n, el) {
while (n--) {
el = el.parentElement;
if (!el) return null;
}
return el;
}
最实用的方法是为该元素指定一个类,并使用
e.target.closest('.comment')
如果给定元素的父节点少于四个,则您的代码将引发错误。@LuizFelipe执行e.target.parentElement.parentElement.parentElement.parentElement
。我认为这肯定是不可能的。