Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery仅更改图像源的路径?_Javascript_Html_Jquery_Css - Fatal编程技术网

Javascript 如何使用jQuery仅更改图像源的路径?

Javascript 如何使用jQuery仅更改图像源的路径?,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我正在尝试将暗模式功能添加到我的网站,div和其他对象的一切都很好,但我无法更改图像的唯一路径 我有两个文件夹用于暗和常规图像,每个文件夹包含相同名称的相同文件,但仅针对网站的暗和常规模式进行编辑,因此我想将src更改为../assets/imgs/regular/filename.jpg改为../assets/imgs/dark/samefilename.jpg 我是个新手,所以请简单回答。选择图像标签,用Jquery.attr更改src属性 如果您想用jQuery实现这一点,尽管您也可以用v

我正在尝试将暗模式功能添加到我的网站,div和其他对象的一切都很好,但我无法更改图像的唯一路径

我有两个文件夹用于暗和常规图像,每个文件夹包含相同名称的相同文件,但仅针对网站的暗和常规模式进行编辑,因此我想将src更改为../assets/imgs/regular/filename.jpg改为../assets/imgs/dark/samefilename.jpg


我是个新手,所以请简单回答。

选择图像标签,用Jquery.attr更改src属性


如果您想用jQuery实现这一点,尽管您也可以用vanilla js实现,那么应该使用jQuery的attr函数

例如,如果您的图像id为myImage,只需编写:

$myImage.attr'src','../assets/imgs/dark/samefilename.jpg'

这会将常规图像的路径更改为暗图像

但我想你也希望它在你关闭黑暗模式后恢复

所以这里加上if-else是完美的。例如:

$("#darkModeButton").on('click',function(){

    if($("#myImage").attr('src') == '../assets/imgs/regular/filename.jpg'){

        $("#myImage").attr('src','../assets/imgs/dark/samefilename.jpg');

    }

    else {

        $("#myImage").attr('src','../assets/imgs/regular/filename.jpg');

    }        

}
这只是一个虚构的例子,我假设你有一个以上的图像,你想替换为一个黑暗的


希望我能帮上一点忙。

听起来你需要帮忙

循环你的图像 拉动每个SRC属性 是否执行正则表达式查找/替换 i、 e.设置为暗模式时,类似于此:

jQuery('img').each(function(){
    jQuery(this).attr('src', jQuery(this).attr('src').replace(/assets\/imgs\/regular/i, 'assets/imgs/dark'))
});

请张贴一个可复制的例子。所以人们更容易回答。如果适合的话,您还可以包括一个Codepen或JSFiddle。$img,attr'src','../assets/imgs/dark/samefilename.jpg';-简单的例子我很抱歉我忘了这么做,但是问题已经解决了,但是谢谢你的警告我喜欢你的解决方案,尽管他可以用includes方法简单地替换它们,也可以用同样的方法将图片还原为浅色图片。我想这对他来说会更容易,因为他说他对JS真的很陌生,所以我猜他还不懂正则表达式:非常感谢!这正是我想要的。公平地说,你可能不需要正则表达式,它们只是更具容错性`替换“/regular/”、“/dark/”也就足够了。
jQuery('img').each(function(){
    jQuery(this).attr('src', jQuery(this).attr('src').replace(/assets\/imgs\/regular/i, 'assets/imgs/dark'))
});