javascript - 递归获取父div

标签 javascript jquery html recursion

我有这个 HTML

<div id="main-container">
   <div style="style-here" data-status="active" data-state="loaded">
      <div style="style-here">
         <div style="style-here" {{click_event}}></div>
      </div>
   </div>
   <div style="style-here" data-status="active" data-state="unloaded">
      <div style="style-here">
         <div style="style-here" {{click_event}}></div>
      </div>
   </div>
   <div style="style-here" data-status="inactive" data-state="unloaded">
     <div style="style-here">
         <div style="style-here" {{click_event}}></div>
      </div>
   </div>
</div>

点击具有 {{click_event}} 的元素之一时,我想递归搜索,直到找到具有 data-status 或 data-state 的元素,并且在最坏的情况下,当我遇到顶部的 id 时停止搜索。

HTML 是从另一个 JS 文件生成的,我无法更改其生成方式。有没有办法使用 closestparentjQuery 搜索 data 属性?

谢谢。

最佳答案

不需要递归,可以使用closest():

$clickedElement.click(function() {
    var $parent = $(this).closest('[data-status], [data-state], #main-container');
});

关于javascript - 递归获取父div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28152191/

相关文章:

javascript - 动态添加输入元素以形成并将值存储在数据库中

javascript - 在浏览器中订购脚本的加载

html - 可拖动 <div>。与选择搏斗

javascript - 想要隐藏 javascript 表单提交上的参数吗?

javascript - 根据值获取键名列表 - Javascript

javascript - [src] 属性更改后 Angular 5 不重新渲染 img 标签

javascript - 在 WP 中用 Masonry 叠加图像

javascript - Blur() 与 onblur()

jquery - 垂直对齐似乎不起作用

javascript - 如何使用 Knockout 连接 Observable 数组中的所有项目?