需要帮助替换功能javascript

时间:2014-03-28 11:32:52

标签: javascript

我有一个HTML网站,必须在其中替换一个字符串 代码如下所示:

<div class="field field_text field_name_manufacturer_key_number field_value_50-000">    
    <div class="label">    
        Herstellerschlüsselnummer   
    </div>
    <div class="label">    
        50.000    
    </div>
</div>

我想只更改“Herstellerschlüsselnummer”上方的字符串,其余部分必须不受影响

使用JavaScript看起来像这样,但它不起作用,我不知道为什么

document.getElementsByClassName("field_name_manufacturer_key_number")["0"].innerHTML.replace('Herstellerschlüsselnummer','inkl. Kilometer');

有人可以告诉我如何管理这个? 不,我不能改变HTML或MYSQL或PHP中的字段:)等。

3 个答案:

答案 0 :(得分:2)

replace函数返回带有替换项的字符串,因此您必须将其分配给某些内容。在你的情况下,也许:

如果您只有一个与该类匹配的元素,则可以执行以下操作:

var element = document.querySelector(".field_name_manufacturer_key_number");
element.innerHTML = element.innerHTML.replace('Herstellerschlüsselnummer','inkl. Kilometer');

querySelector接受一个CSS选择器。它比getElementsByClassName具有更好的支持,它返回第一个匹配而不是列表,因此不需要[0]。获取列表的等价物[如果你想在某些时候用别的东西]是querySelectorAll。)

答案 1 :(得分:0)

放置后需要设置/覆盖innerHTML:

document.getElementsByClassName("field_name_manufacturer_key_number")["0"].innerHTML = 
document.getElementsByClassName("field_name_manufacturer_key_number")["0"].innerHTML.replace('Herstellerschlüsselnummer','inkl. Kilometer');

答案 2 :(得分:0)

您可以通过各种方式解决此问题,主要取决于您定位的最低浏览器版本,尤其是IE。 jQuery显然提供了最简单的方法,但是如果你不使用它的其他功能,那么将它包含在任务中就太过分了。无论如何,你可以在所有版本的IE上使用jQuery:

$(".field_name_manufacturer_key_number .label").eq(0).text("inkl. Kilometer");

IE 8+(没有jQuery)

var element = document.querySelector(".field_name_manufacturer_key_number .label");
element.textContent = "inkl. Kilometer";

IE 9+(没有jQuery)

var parent = document.getElementsByClassName("field_name_manufacturer_key_number")[0],
    child = parent.getElementsByClassName("label")[0];
child.textContent = "inkl. Kilometer";