javascript - 单击按钮时替换图像 src 属性中的文件夹名称
问题描述
单击按钮/触发器时,我需要将特定类“.imageShift”的所有实例的文件夹路径名称从 img/image.jpg 更改为 imgdark/image.jpg。在图像 src 中插入的图像名称在所有出现时都应该保持不变。只是“img”文件夹路径必须替换为“imgdark”。我尝试了下面给出的代码。
$('.themeColor').click(function () {
var getId = $(this).attr('id');
var imagePath = $('.imagePath');
if (getId === 'darkTheme') {
imagePath.attr('src', function (index, attr) {
return attr.replace('img', 'imgdark');
});
} else if (getId === 'lightTheme') {
imagePath.attr('src', function (index, attr) {
return attr.replace('imgdark', 'img');
});
}
});
上面的代码运行良好,但每次单击时都会出现控制台错误,如下所示。我需要摆脱那个控制台错误,并像现在一样完成这项工作。如果有人已经这样做了,请提供帮助。
Uncaught TypeError: Cannot read property 'replace' of undefined
at HTMLLIElement.<anonymous> (homepage.js:1619)
at z (jquery-3.3.1.min.js:2)
at w.fn.init.attr (jquery-3.3.1.min.js:2)
at HTMLSpanElement.<anonymous> (homepage.js:1617)
at HTMLSpanElement.dispatch (jquery-3.3.1.min.js:2)
at HTMLSpanElement.y.handle (jquery-3.3.1.min.js:2)
解决方案
用这个:
$('.themeColor').click(function () {
var getId = $(this).attr('id');
var imagePath = $('.imagePath');
if (getId === 'darkTheme') {
imagePath.attr('src', 'imgdark/image.jpg');
} else if (getId === 'lightTheme') {
imagePath.attr('src', 'img/image.jpg');
}
});
推荐阅读
- python - 如何从本地机器加载图像以通过 Tensorflow 进行图像分类?
- python-3.x - 查找区间中的素数或 ELSE 查找非素数的所有可能除法
- php - 使用查询生成器 laravel 删除用户
- google-cloud-platform - 无法在同一实例组中的 2 个 GCP 实例之间进行通信
- python - 使用python的两个不同的远程服务器通信
- python - 如何为 cv2.addWeighted 设置变量 alpha 和 beta?
- r - 使用引号内的类别读取 csv 时出现问题
- c++ - 为什么我不能检索变体的索引并使用它来获取其内容?
- r - 在堆叠条形图的各个类别旁边显示摘要栏
- java - 具有 const 参数的不可变对象是否会被优化为仅由 Kotlin 编译器实例化一次