0

我已经尝试了几个小时,并且在 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);

它根本行不通。有任何想法吗?

4

3 回答 3

1

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

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

你真的应该只修改标签的src属性。img这是更恰当的攻击方式。像您尝试那样更改 html 将丢失绑定到 DOM 元素的任何事件或数据。

于 2013-02-28T21:58:44.080 回答
0

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

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

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

});

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

于 2013-02-28T21:52:47.123 回答
0

使用回调函数实际更新 HTML,并使用正则表达式(对象)一次替换所有实例:

$('#bscontainer').html(function (i, str) {
    curColor = new RegExp("Blue","g"); // global replace
    newColor = "Green";
    return str.replace(curColor, newColor);
});
于 2013-02-28T21:53:52.847 回答