使用正则表达式更改img src
Use regex to change img src
我想根据单击的字母按钮更改图像源。我想我需要使用正则表达式,但我不确定它应该是什么样子。
<img id="logo_layer2" src="images/logo/logo_compass_a_layer2_red.png">
<ul id="letters">
<li>A</li>
<li>B</li>
<li>C</li>
...
</ul>
"a_layer2"部分应更改为"b_layer2"、"e_layer2",依此类推
events: {
"click #letters li" : "change_letter"
},
change_letter: function(e) {
var letter = $(e.target).text();
var newimg = /images'/logo'/logo_'w*_'w{1}_layer'd_'w*.png/.replace((/'w{1}/,letter));
$("#logo_layer2").attr("src",newimg);
},
http://jsfiddle.net/uLqBY/
尝试
小提琴演示
$('#letters li').click(function(){
var txt =$(this).text().toLowerCase();
$('#logo_layer2').attr('src',function(_,old_src){
return old_src.replace(/_'w_/g,'_'+txt+'_');
});
});
小提琴演示
$('#letters li').click(function(){
var txt =$(this).text().toLowerCase();
$('#logo_layer2').prop('src',function(_,old_src){
return old_src.replace(/_'w_/g,'_'+txt+'_');
});
});
.pr()
读取.pr()与.attr()
要改进正则表达式,您可以使用以下正向lookbacking和lookahead:
(?<=images'/logo'/logo_'w*_)'w{1}(?=_layer'd_'w*.png)
这将只匹配您想要更改的字母,在这种情况下,它是src中的"a"。
至于jquery/js,我不知道。
相关文章:
- Javascript:使用绝对路径设置img src
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 插入“;img src"在javascript中
- 从二维数组中获取img src和img维度,并在body中显示
- 在不发出请求的情况下设置img src
- Jquery/Javascript使用IF/ELSE语句更改img SRC
- 使用JQuery从包含A href值中设置*all*IMG-src值
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- Img-src只通过javascript更改一次
- 正则表达式使链接可点击(仅在“href”而不是“img src”中)
- 交换 img src 或显示/隐藏多个图像是否更快
- 如果有办法在 N 秒内加载未触发,则有没有办法设置 img src
- img src 在 Firefox 和 IE 的 jQuery 脚本中没有更改
- 如何从弹簧控制器方法更新html img src
- onload 不会在 Firefox 中使用 createObjectURL img.src 触发
- img src 属性在为空时返回页面的 URL
- EmberJS config prod img src url
- Jquery-如何在悬停时更改img src
- writeln img src将数据提交到外部系统-Firefox和IE挂起
- 使用jQuery禁用img src等于特定值时的href