我有这个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}}的元素之一,我想递归搜索,直到找到具有数据状态或数据状态的元素,在最坏的情况下,当我从顶部遇到id以停止搜索时。
HTML 是从另一个 JS 文件生成的,我无法更改制作方式。有没有办法jQuery
closest
或parent
在属性后搜索data
?
谢谢。
不需要递归,可以使用closest()
:
$clickedElement.click(function() {
var $parent = $(this).closest('[data-status], [data-state], #main-container');
});