我目前正在尝试更改点击图片路径末尾的数字。
$(".container-button").click(function(){
$("img.picture").each(
function(){
var p = $(this).attr('src');
var new_image = p.replace('3.jpg' || '2.jpg' || '1.jpg', '4.jpg');
$(this).attr('src',new_image);
}
);
});
如果您查看我的代码,请执行以下操作:
我看到的是,只有在找到集合中的第一个文件名但忽略其他文件名时才会替换它。
我做错了什么?
答案 0 :(得分:5)
OR条件将在评估第一个字符串'3.jpg'
后停止,并将忽略其他字符串。
要在正则表达式中使用OR,可以使用|
运算符。
因此,(1|2|3)\.jpg
可以使用。但是,字符类有点快,可以在其中使用范围。
$(".container-button").click(function() {
$("img.picture").attr('src', function(i, value) {
return value.replace(/[1-3]\.jpg$/i, '4.jpg');
});
});
除此之外,attr()
可与回调函数一起使用,以更改所有匹配元素的src
属性。
RegEx /[1-3]\.jpg$/i
将匹配
.
字符(这需要转义以匹配文字)jpg
。i
标志用于匹配字符串case-in-sensitively。