提问者:小点点

是否可以使用event.target将elements的父元素作为目标?


我试图改变我的页面的innerHTML,成为我点击的元素的innerHTML,唯一的问题是我希望它采取整个元素如:

<section class="homeItem" data-detail="{"ID":"8","Name":"MacBook Air","Description":"2015 MacBook A…"20","Price":"899","Photo":"Images/Products/macbookAir.png"}"></section>

而我用JavaScript编写的代码:

function selectedProduct(event){
  target = event.target;
  element = document.getElementById("test");
  element.innerHTML = target.innerHTML;
}

将以我点击的特定元素为目标。

我希望实现的是,当我单击

元素中的任何位置时,它将获取整个元素的innerHTML,而不是我单击的特定元素的innerHTML。

我会假设它是与选择一个被点击的父元素有关的,但是我不确定并且在网上找不到任何东西。

如果可能的话,我希望远离JQuery


共3个答案

匿名用户

我认为您需要的是使用Event.currentTarget。 这将包含实际具有事件侦听器的元素。 因此,如果整个

具有eventlistenerEvent.Target将是单击的元素,则
将位于Event.CurrentTarget中。

否则,parentnode可能就是您要查找的内容。

链接到CurrentTarget
链接到parentNode

匿名用户

要使用元素的父级,请使用ParentElement:

function selectedProduct(event){
  var target = event.target;
  var parent = target.parentElement;//parent of "target"
}

匿名用户

function getParent(event)
{
   return event.target.parentNode;
}

示例:1。 document.body.AddEventListener(“click”,getParent,false);返回已单击的当前元素的父元素。