使用GetElementsByClassName删除部分文本

时间:2015-05-15 15:26:03

标签: javascript replace getelementsbyclassname

我尝试使用以下脚本删除" .00"从我正在处理的页面上的所有价格。 " .00"由我正在使用的WP主题自动构建。

这是我使用的脚本:

<script>
window.onload = function() {
    var str = document.getElementsByClassName("hungry-menu-item-price").innerHTML; 
    var res = str.replace(".00", "");
    document.getElementsByClassName("hungry-menu-item-price").innerHTML = res;
}
</script>

价格格式如下:

<h4 class="hungry-menu-item-price">$24.00</p>

......但它没有用。我错过了什么?

2 个答案:

答案 0 :(得分:2)

getElementsByClassName返回HTMLCollection。你必须迭代它:

&#13;
&#13;
var elements = document.getElementsByClassName("hungry-menu-item-price");
for(var i=0; i<elements.length; ++i)
  elements[i].textContent = elements[i].textContent.replace(".00", "");
&#13;
<p class="hungry-menu-item-price">$24.00</p>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

document.getElementsByClassName()函数返回一个nodeList,而不是一个元素

所以一定是:

document.getElementsByClassName( '饿菜单项目价格')[0] .innerHTML