我一直在寻找一种搜索同一类的所有元素并删除所有 的方法,因为这些元素会导致我的页面布局出现不必要的间隙。

最初,我使用以下代码:

var el = document.querySelector('.offer');
el.innerHTML = el.innerHTML.replace(' ', '');


但这只会找到offer类的第一个节点,因此没有太大用处。

最佳答案

我之所以回答自己的问题,是因为我不得不从这里以及其他网站上的许多帖子中整理出来,希望它对我所处位置的其他人有所帮助。

首先,我需要使用.queryselectorAll而不是.querySelector返回具有offer类的所有元素。

但是,由于.queryselectorAll返回一串节点而不是它遇到的第一个节点,所以下一行将不起作用。

el.innerHTML = el.innerHTML.replace(' ', '');


解决方案是遍历每个元素并替换每个 实例

var el = document.querySelectorAll('.offer');
for(var i = 0; i < el.length; i++){
  el[i].innerHTML = el[i].innerHTML.replace('&nbsp;', '');
}

10-05 20:43
查看更多