向上遍历直到找到属性id

Traverse up until find attribute id

我必须向上遍历,直到元素具有 id 属性。我的问题是元素不确定,有时 parent 有 id 属性,有时 grandparent 有 id 属性,这样下去。我试试

var id = $(this).closest().find("['id']").attr("id");

我没有这样做的想法。谁能帮帮我

尝试在 .closest 中使用 [id] 选择器字符串 ,以便 closest returns 具有 ID 的元素.请注意,选择器字符串不应在 id:

周围有 "s

$('span').on('click', function() {
  var id = $(this).closest("[id]").attr("id");
  console.log(id);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="outer">outer
  <div>inner
    <span>click here</span>
  </div>
</div>