我有一个具有法语和英语维度的网站。例如,我有一张尺寸为36 x 46.5厘米的图像。因为它是法语,所以点(".")应为逗号(",")。
结构:
<div class="wrapper">
<span class="custom-field">46.5</span>
</div>我的代码:
<script>
var period = document.getElementsByClassName("custom-field");
var comma = period.replace(".",",");
document.getElementsByClassName("custom-field").innerHTML = comma
</script>控制台告诉我period.replace(".",",")不是一个函数。请提前给予帮助和感谢。
发布于 2020-07-09 02:20:10
period实际上不是一个字符串,它是一个HTMLElements数组,所以如果你想使用replace方法,它应该在string上。您可以像这样访问span数据:
var period = document.getElementsByClassName("custom-field")[0].innerHTML;
var comma = period.replace(".",",");如果你想全部改变它们,你可以这样做:
var customFields = document.getElementsByClassName("custom-field");
for (let i = 0; i < customFields.length; i++) {
customFields[i].innerHTML = customFields[i].innerHTML.replace(".",",")
};发布于 2020-07-09 02:20:11
因为HTMLCollection,是document.getElementsByClassName的结果,所以你需要遍历它。
试着这样做:
var period = document.getElementsByClassName("custom-field");
for (let item of period) {
item.innerHTML = item.innerHTML.replace(".", ",");
}<div class="wrapper">
<span class="custom-field">46.5</span>
</div>
发布于 2020-07-09 02:20:17
使用document.querySelector获取与选择器匹配的第一个元素,并使用.textContent获取其文本。
var el = document.querySelector('.custom-field');
el.textContent = el.textContent.replace(".", ",");https://stackoverflow.com/questions/62801095
复制相似问题