繁体   English   中英

如何通过类名的第一部分选择最接近的元素?

[英]How to select the closest element by first part of classname?

我有桌子的这部分

<tr class="getmoreinfo_19">
    <td>&nbsp;</td>
    <td colspan="3">
        <div class="alert alert-warning alert-dismissible fade show" role="alert">
             <i class="far fa-window-close getmoreinfo_x"></i>txt
        </div>
    </td>
</tr>

现在,我想单击"<i class="far fa-window-close getmoreinfo_x"></i>"图标将其隐藏。

为此,我想切换display:none类。

我的问题是,我不知道如何选择以“ getmoreinfo_”开头的类名为最接近的“ tr”?

有可能吗?

非常感谢。

如果您使用的是javascript,请尝试.closest('tr[class^="getmoreinfo_"]')

请注意,这是假设的点击目标是<i>tr元素始终具有唯一的类getmoreinfo_ 开头 如果您的tr有更多的类,请考虑使用此方法:

.closest('tr[class*="getmoreinfo_"]')

<table>
  <tr class="getmoreinfo_1" data-row="1">
    <td>
      <div class="item"><span></span><i class="icon-x">X</i></div>
    </td>
  </tr>
  <tr class="getmoreinfo_1" data-row="2">
    <td>
      <div class="item"><span></span><i class="icon-x">X</i></div>
    </td>
  </tr>
  <tr class="getmoreinfo_1" data-row="3">
    <td>
      <div class="item"><span></span><i class="icon-x">X</i></div>
    </td>
  </tr>
</table>
(function(){
  const icons = document.querySelectorAll('.icon-x');

  function clickHandler(event) {
    const row = event.currentTarget.closest('tr[class*="getmoreinfo_"]');
    console.log(`clicked: ${row.getAttribute('data-row')}`)
  }

  for(const icon of icons) {
    icon.addEventListener('click', clickHandler);
  }
})();

希望这个帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM