我有这个 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 文件生成的,我无法更改其生成方式。有没有办法使用 closest
或 parent
从 jQuery
搜索 data
属性?
谢谢。
最佳答案
不需要递归,可以使用closest()
:
$clickedElement.click(function() {
var $parent = $(this).closest('[data-status], [data-state], #main-container');
});
关于javascript - 递归获取父div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28152191/