我尝试将多行中
的每个示例替换为w(如字符'w')。这些行如下:
<li class="list-group-item horaire-list-item">
Monday, Tuesday, Thursday, Friday : 12:00 to 14:00 et 18:00 to 20:30
</li>
<li class="list-group-item horaire-list-item">
Wednesday : 12:00 to 14:00 et 16:00 to 20:30
</li>
<li class="list-group-item horaire-list-item">
Saturday : 12:00 to 20:30
</li>
<li class="list-group-item horaire-list-item">
Sunday, Holidays : 09:00 to 20:30
</li>
我已经使用代码blow成功地将“a”的示例替换为“e”,使用replace(/a/g, 'e')
,所以我知道我的代码是有效的。
我的代码如下:
var laHoraireElements = document.getElementsByClassName('list-group-item horaire-list-item');
for ( liJ = 0; liJ < laHoraireElements.length; liJ++ ) {
laHoraireElements[liJ].innerText = laHoraireElements[liJ].innerText.replace(/ /g, 'w');
alert(laHoraireElements[liJ].innerText);
}
预期的结果是
的示例将被替换为'w',但
的示例没有被修改。原因可能是什么?
4条答案
按热度按时间4xrmg8kj1#
在HTML中已经呈现为一个空格,因此没有任何
的示例需要替换。如果你想保持它的原样,转义它也可以,允许你用regex replace修改它。正如@barmar提到的,使用innerHTML也可以做到这一点:第一个
mkshixfv2#
使用
innerHTML
而不是innerText
。innerText
包含呈现的文本,但实体是HTML标记的一部分。wrrgggsh3#
您需要使用
innerHTML
属性,因为在innerText
中,
将被替换为char(160)
字符。演示:
第一个
qybjjes14#
根据@Peter B的回答,我终于明白了为什么我找不到“空格”字符,即使在记事本++中启用了“显示所有字符”!事实上,尽管看起来像一个空格,但它是一个
char(160)
!下面是如何直接用“适当”的空间替换它:
element.innerText.replaceAll( String.fromCharCode(160) , ' ' )