[英]How to select the closest element by first part of classname?
我有桌子的这部分
<tr class="getmoreinfo_19">
<td> </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.