我有以下HTML代码:
<li class="_33c randomtext3" data-gt="{"alert_id":1576605904117859,"notif_type":"pub_comment","from_uids"}">
<li class="_33c randomtext5" data-gt="{"alert_id":1576605904117859,"notif_type":"year_comment","from_uids"}">
<li class="_33c randomtext4" data-gt="{"alert_id":1576605904117859,"notif_type":"group_comment","from_uids"}">
<li class="_33c randomtext7" data-gt="{"alert_id":1576605904117859,"notif_type":"pub_comment","from_uids"}">
<li class="_33c randomtext5" data-gt="{"alert_id":1576605904117859,"notif_type":"pub_comment","from_uids"}">
行的顺序不同(使用[2]无效)
我要删除带有特定文本(<li>
的{{1}},data-gt="...group_comment..."
是特定文本(第3行,有时在另一行)。
我尝试将"group_comment"
与document.querySelectorAll('[data-gt]');
一起使用,但是如何在NodeList(5)
中找到特定文本?
谢谢。
答案 0 :(得分:2)
使用属性值选择器和通配符选择器。
document.querySelectorAll('li[data-gt*=group_comment]')
请参见https://www.geeksforgeeks.org/wildcard-selectors-and-in-css-for-classes/
const matches = document.querySelectorAll('[data-gt*="group_comment"]')
matches.forEach( x => x.classList.add("hidden") )
.hidden {
display: none;
}
<ul>
<li class="_33c randomtext3" data-gt="{"alert_id":1576605904117859,"notif_type":"pub_comment","from_uids"}"> pub_comment </li>
<li class="_33c randomtext5" data-gt="{"alert_id":1576605904117859,"notif_type":"year_comment","from_uids"}"> year_comment </li>
<li class="_33c randomtext4" data-gt="{"alert_id":1576605904117859,"notif_type":"group_comment","from_uids"}"> group_comment </li>
<li class="_33c randomtext7" data-gt="{"alert_id":1576605904117859,"notif_type":"pub_comment","from_uids"}">pub_comment</li>
<li class="_33c randomtext5" data-gt="{"alert_id":1576605904117859,"notif_type":"pub_comment","from_uids"}">pub_comment</li>
</ul>
答案 1 :(得分:0)
您应该结合使用属性选择器和包含修饰符*
const commments = document.querySelectorAll('[data-gt*="group_comment"]')
您可以在此处看到不同的修饰符:Attribute Selectors