我有一个功能可以删除短划线以及标题后面的所有内容。 这是JS
<script>
(function() {
var str2 = document.querySelector('.dash-remove').innerHTML;
var txt2 = str2.replace(/ -.*$/g,"");
document.querySelector('.dash-remove').innerHTML = txt2;
})();
</script>
Html就是这样的
<h2 class="dash-remove">Testing - this function</h2>
然而,这不起作用,它不会删除短划线或文本。
我试图像这样删除短划线:
<script>
(function() {
var str2 = document.querySelector('.dash-remove').innerHTML;
var txt2 = str2.replace('-',"");
document.querySelector('.dash-remove').innerHTML = txt2;
})();
</script>
这是有效的,所以我认为它与正则表达式有关?任何想法?
答案 0 :(得分:0)
正如OP的评论中所讨论的,这可能是由于课程多次出现。然后,您应该使用document.querySelectorAll
以及NodeList#forEach
:
(function() {
document.querySelectorAll('.dash-remove').forEach(item => {
item.innerHTML = item.innerHTML.replace(/ -.*$/g, '');
});
})();
&#13;
The Html is something like this
<h2 class="dash-remove">Testing - this function</h2>
<h2 class="dash-remove">Testing - that function</h2>
&#13;