javascript - onclick 获取 child 的祖 parent

标签 javascript jquery

我想通过点击每个子元素来获取祖父id,使用event.target.parentNode.id但它只是返回当前元素的父元素,目标是单击每个子项时获取#HereIAm id。有什么想法吗?

$(window).click(function(event) {
  console.log(event.target.parentNode.id);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="HereIAm">

  <ul>
    <li><a>click me</a></li>
    <li>click me</li>
  </ul>
  <span>click me</span>
  <div>
    <div>
      <span>click me</span>
    </div>
  </div>
  
</div>

最佳答案

给定 HTML,一种选择是使用 .closest并使用选择器字符串 div[id]选择最近的祖先 id属性:

$(document).click(function({ target }) {
  const closest = target.closest('div[id]');
  if (closest) console.log(closest.id);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="HereIAm">

  <ul>
    <li><a>click me</a></li>
    <li>click me</li>
  </ul>
  <span>click me</span>
  <div>
    <div>
      <span>click me</span>
    </div>
  </div>
  
</div>

关于javascript - onclick 获取 child 的祖 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53029136/

相关文章:

javascript - 使用 JavaScript 更改多个元素样式

javascript - 从选择下拉菜单更新谷歌地图

javascript - RequireJS 工作不一致

javascript - 从“提交”按钮调用 Javascript 验证功能

javascript - 用于交互式图形绘制的轻量级 javascript 库?

javascript - 在 format.html 和 format.js 之间显示 Rails3 Flash 消息?

jquery - SimpleModal containerCSS 在 Firefox 或 Chrome 中不起作用

javascript - jQuery $(this).find() 和 $(selector,this) 不工作

javascript - Openlayers:不同矢量图层上的标记

JavaScript - 未捕获的语法错误 : Unexpected token ILLEGAL