通过JavaScript覆盖一个类

时间:2013-12-16 14:18:14

标签: javascript html css content-management-system dom-manipulation

我想覆盖由class = cc-product-infolink定义的一些文本,它由CMS定义,所以我必须通过JS更改此类中的文本。这是我第一次使用它,所以我写了一个小脚本,但它不起作用。为什么呢?

我想在“inkl.MwSt,VersandkostengemäßAngaben”中更改文字“inkl.MwSt,zzgl.Versandkosten”。并且JS代码必须在head中工作,因为不可能将其放入body

这是我的HTML代码:

<div class="cc-product-infolink">
    <a class="cc-no-clickable-arrow" href="/j/shop/info/m/me6f40c3b0bd58b35" rel="nofollow">inkl. MwSt, zzgl. Versandkosten</a>
</div>

我的JS代码

    <script type="text/javascript">
    //<![CDATA[
var versand = document.getElementsByClassName('cc-product-infolink')[0];
versand.getElementsByTagName('a')[0].textContent += ' gemäß Angaben';
    //]]>
    </script>

它应该在这里工作:http://www.wonnemond.de/taschen/karl/#cc-m-product-8254989095 也许有人可以帮助我。

1 个答案:

答案 0 :(得分:2)

var versand = document.getElementsByClassName('cc-product-infolink')[0];
versand.getElementsByTagName('a')[0].textContent += ' gemäß Angaben';
  • 一些注意事项:

    1. idclass不一样。顾名思义,getElementByIdid属性检索元素。您的元素只有class,因此您需要getElementsByClassName。我想你无法改变HTML。

    2. textContent用于设置/获取 DOM元素的文本内容。旧IE(IE8及更早版本)使用 而是innerText

    3. firstChild不起作用,因为该链接不是该div的第一个子节点。在链接之前有一个包含换行符和一些缩进的文本节点。使用getElementsByTagName可以解决这个问题。

  • 还有jsFiddle Demo