我想覆盖由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 也许有人可以帮助我。
答案 0 :(得分:2)
var versand = document.getElementsByClassName('cc-product-infolink')[0];
versand.getElementsByTagName('a')[0].textContent += ' gemäß Angaben';
一些注意事项:
id
和class
不一样。顾名思义,getElementById
按id
属性检索元素。您的元素只有class
,因此您需要getElementsByClassName
。我想你无法改变HTML。
textContent
用于设置/获取
DOM元素的文本内容。旧IE(IE8及更早版本)使用
而是innerText
。
firstChild
不起作用,因为该链接不是该div的第一个子节点。在链接之前有一个包含换行符和一些缩进的文本节点。使用getElementsByTagName
可以解决这个问题。