事件.目标。选择父项而不是子项

Met*_*niz 2 javascript jquery events target

我想知道是否有机会只选择父 div 而不是其子 div。一个简单的例子是这样的:

<!DOCTYPE html>
<html>
<body onclick="myFunction(event)">
  <div style="border: solid black 2px">

    <p>Click on a paragraph. An alert box will alert the element 
       that triggered the event.</p>

    <p><strong>Note:</strong> The target property returns the element that 
       triggered the event, and not necessarily the eventlistener's element.</p>
</div>
<script>
  function myFunction(event) { 
    alert(event.target.nodeName);
  }
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想要的很简单,我想单击 div(不介意它是否在 p 标签上)并接收 div 已被单击的消息。现在,如果我单击 p 标签,我会收到 p 消息。

事实上,我试图仅选择 div 而不是 p 标签,例如更改其所有颜色。谢谢你们。

C14*_*14L 5

要选择父元素,请使用

event.target.parentName
Run Code Online (Sandbox Code Playgroud)

如果事件可能发生在任何元素上,并且您想要查找 上的某个祖先元素event.target,则需要沿着继承链向上走。或者使用jquery,它有一个方法。

如果您的情况像示例中那样简单,您可以

if (event.target.tagName == "DIV") return event.target;
if (event.target.parentName.tagName == "DIV") return event.target.parentName;
Run Code Online (Sandbox Code Playgroud)


小智 5

function myFunction(event) { 
alert(event.target.parentNode.nodeName);
}
Run Code Online (Sandbox Code Playgroud)

尝试这个