javascript - 使用 jQuery 更改文件名结尾

标签 javascript jquery

我目前正尝试在点击时更改图像路径末尾的数字。

$(".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);
            }
        );
});

如果您看一下我的代码,我会执行以下操作:

  • 单击时我在类中搜索图像源并将其存储在变量中
  • 我创建了一个新变量,用于查找图像文件末尾的一组文件名,将其替换为 4.jpg,并将其存储在变量 new_image 中。
  • 我查找源属性并将其切换为存储在 new_image 中的内容。

我看到的是,如果它在集合中找到第一个文件名但其他文件名被忽略,它只会查找替换。

我做错了什么?

最佳答案

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 将匹配

  1. 1 到 3 之间的数字
  2. 后跟.字符(这需要转义以匹配文字)
  3. 跟在字符串末尾的jpg
  4. i 标志用于区分大小写匹配字符串。

关于javascript - 使用 jQuery 更改文件名结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41954104/

相关文章:

javascript - 大型 CSS 背景图像在加载时会阻塞 Javascript

javascript - 使用javascript在没有逗号的html中显示数组的值

javascript - 选择 radio 后隐藏 div

javascript - 清除页面中的控件值而不从服务器 ASP.NET 回发

javascript - 当任何输入字段上发生任何 'enter' 按键事件时,单击最近的提交按钮

javascript - 从选择下拉列表中的文本解析数字以计算数字并将文本和数字保存到数据库

javascript - 在图像加载时在 JQuery 中执行一些操作(this)

javascript - 旋转 Sprite javascript

javascript - javascript/jquery 中的简单 3-2-1 倒计时

java - 将 1 个列表图像从 MySQL 数据库加载到列表 JSP 页面