52

我有一个包含对象的数组,其中一些对象在字符串中包含下划线。

例子:

{"name": "My_name"}

但是我在多个地方调用了 name 函数,一个这样的地方是在图像标签中需要下划线的地方,使用 JavaScript 我想选择一个带有名字的 div 并用空格替换下划线。

例子:

<div>
 <div class="name">
  My_name
 </div>
 <img src="My_name.jpg"/>
</div>

div.name我想要它说My name而不是My_name.

4

2 回答 2

121

您可以用空格替换字符串中的所有下划线,如下所示:

str.replace(/_/g, ' ');

因此,只需在放入内容之前执行此操作。如果您需要在之后执行替换,请使用循环each

$('.name').each(function () {
    this.textContent = this.textContent.replace(/_/g, ' ');
});
于 2012-08-04T17:26:54.107 回答
12

ES2021 引入了漂亮的replaceAll()函数,这意味着它可以写成:

str.replaceAll('_', ' ')

如果你想做多个元素,只需循环它们并使用forEach()

const elements = document.querySelectorAll('.name')   
elements.forEach(e => e.innerText = e.innerText.replaceAll('_', ' '))
于 2020-09-16T15:08:08.533 回答