用Javascript替换所有innerhtml文本

时间:2013-02-28 21:49:21

标签: javascript jquery

我已经尝试了几个小时,我在StackOverflow上看了很多样本​​,但我无法修复我的简单脚本。

我用jQuery抓住了DOM

var color = $('#bscontainer').html();

现在颜色的内容是:

<img src="resources/P/Blue_BG_2Col.png" id="bg">
<img src="resources/P/Blue_Content_2Col.png" id="content">
<img src="resources/P/Blue_Title_ExchangeRate.png" id="title">
<img src="resources/P/Blue_SubTitle_2Col.png" id="subtitle">
<img src="resources/P/Blue_Disclaimer_Disclaimer.png" id="disclaimer">

我的想法是将所有蓝色改为绿色,我已经尝试过了:

curColor="Blue";
newColor="Green";
t=color.replace(curColor,newColor);

它根本不起作用。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

所以基本上你想在color元素中找到每个图像,并用Blue属性中的Green替换src - 这是你可以做到的一种方法:

var color = $('#bscontainer');
color.find('img').each(function(){

    curColor="Blue";
    newColor="Green";
    this.src = this.src.replace(curColor,newColor);

});

不需要代码的.html()部分......

答案 1 :(得分:0)

Use a callback function实际更新HTML,并使用regular expression (object)一次替换所有实例:

$('#bscontainer').html(function (i, str) {
    curColor = new RegExp("Blue","g"); // global replace
    newColor = "Green";
    return str.replace(curColor, newColor);
});

答案 2 :(得分:0)

要直接回答您的问题,请在javascript中将字符串参数作为指针替换,只替换第一个实例。要替换字符串中的所有实例,请使用全局正则表达式:

str.replace(/Blue/g, 'Green');

你真的应该只修改src标签的img属性。这是攻击它的更合适的方法。像你试图改变html将丢失绑定到DOM元素的任何事件或数据。