我已经尝试了几个小时,我在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);
它根本不起作用。有什么想法吗?
答案 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元素的任何事件或数据。