我有一个标签列表,其中大部分标签以连字符开头。我想删除或隐藏所有不包含此字符的标签。由于对代码的访问有限,因此必须使用 jQuery/javascript 来完成。我的尝试不起作用,如何修复?
这是我的 HTML:
<div class="widget Label" data-version="2" id="Label1">
<h3 class="title">
Tags
</h3>
<div class="widget-content cloud-label-widget-content">
<span class="label-size label-size-5">
<a class="label-name" href="https://about.xarcell.studio/search/label/art">
art
<span class="label-count">
10
</span>
</a>
</span>
<span class="label-size label-size-5">
<a class="label-name" href="https://about.xarcell.studio/search/label/-gallery">
-gallery
<span class="label-count">
9
</span>
</a>
</span>
<span class="label-size label-size-5">
<a class="label-name" href="https://about.xarcell.studio/search/label/-photography">
-photography
<span class="label-count">
9
</span>
</a>
</span>
<span class="label-size label-size-5">
<a class="label-name" href="https://about.xarcell.studio/search/label/-portfolio">
-portfolio
<span class="label-count">
9
</span>
</a>
</span>
<span class="label-size label-size-5">
<a class="label-name" href="https://about.xarcell.studio/search/label/opinion">
opinion
<span class="label-count">
9
</span>
</a>
</span>
</div>
</div>
Javascript:
$('#label1').each(function() {
$('#label1 span').find(':not(:contains("-"))').remove();
});
最佳答案
jQuery
jQuery(function($) {
$(`.label-size:not(:contains("-"))`).remove();
});
普通 JavaScript
document.addEventListener("DOMContentLoaded", function(){
for(let node of document.getElementsByClassName("label-size")) {
if(!/-/.test(node.textContent)) {
node.remove();
}
}
});
关于javascript - 如何删除其中没有连字符的任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60662782/