jquery 从 li 获取数据 ID

jquery get data-id from li

我需要从 li 中的 href 单击获取 data-id。 但是 ul、li 和 href 没有 id。 他们确实有很长的 class 名字。 例如:

<ul class="a-long class-name">
   <li class="a-long-li class-name" data-id="99">
      <div class="generic-button">
         <a href="#" class="button edit edit-item secondary-action my-tooltip"> 
            <span class="edit-label">Edit</span>
         </a>
      </div>
   </li>
</ul> 

当点击 li 中的 href 时,我如何获得 data-id

我无法更改或添加任何元素或属性。

您可以使用 data-id 属性作为选择器的一部分

$('li[data-id] a').click(function(e){
   const id = $(this).closest('li').data('id');
   console.log('ID:', id);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="a-long class-name">
   <li class="a-long-li class-name" data-id="99">
      <div class="generic-button">
         <a href="#" class="button edit edit-item secondary-action my-tooltip"> 
            <span class="edit-label">Edit</span>
         </a>
      </div>
   </li>
</ul>