javascript - 使用正则表达式更改img src

标签 javascript jquery regex

我想根据我单击的字母按钮更改图像源。 我想我需要使用正则表达式,但我不确定它到底应该是什么样子。

<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/

最佳答案

尝试

fiddle Demo

$('#letters li').click(function(){
    var txt =$(this).text().toLowerCase();
    $('#logo_layer2').attr('src',function(_,old_src){
        return old_src.replace(/_\w_/g,'_'+txt+'_');
    });
});

<小时/> fiddle Demo

$('#letters li').click(function(){
    var txt =$(this).text().toLowerCase();
    $('#logo_layer2').prop('src',function(_,old_src){
        return old_src.replace(/_\w_/g,'_'+txt+'_');
    });
});

.prop()

阅读.prop() vs .attr()

关于javascript - 使用正则表达式更改img src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20160770/

相关文章:

javascript - 获取两个对象的匹配值

javascript - 如何使用jquery将一个元素转换为2个元素

javascript - 在 SO 中输入问题时出现 "How to Ask"框。如何获得滚动效果?纯 CSS 还是 JS?

java - 正则表达式转义字符

Java - MD5 字符串检查和 REGEX 错误

javascript - 如何在登录页面框架7中隐藏面板和导航栏

javascript - 如何用jquery控制图片扩展?

javascript - IE8 数组和indexOf冲突

javascript - 如何在鼠标悬停在图像上时暂停动画

php - 正则表达式 - 在特定字符的每个实例之后获取所有字符