我有一些来源的img:
<img src="data/model/images/color_01/h_1.png" class="current-image">
我需要在点击操作后更改其源部分
var color_image = $('.current-image')
color_image.on('click',function(){
var image_src_color = color_image.attr('src').split('/')[3];
color_image.attr('src', $(this).replace(image_src_color, 'color_02'));
});
有些事情是不对的,我有控制台警报Object [object Object] has no method 'replace'
,有人可以帮忙吗?很多。
答案 0 :(得分:2)
使用.attr( attributeName, function(index, attr) ):
尝试此操作color_image.on('click', function () {
var image_src_color = color_image.attr('src').split('/')[3];
color_image.attr('src', function (i, val) {
return val.replace(image_src_color, 'color_02');
});
});
答案 1 :(得分:1)
$(this)
应为$(this).attr('src')
答案 2 :(得分:1)
好吧,您正在尝试替换jQuery对象($(this)
)上的内容,而不是URL。 jQuery对象没有.replace
方法,字符串可以。您也访问了错误的元素(我相信),除非您总是想使用第一张图片的网址(这似乎没有意义)。
尝试:
color_image.on('click',function(){
$(this).attr('src', function(i, src) {
return src.replace(src.split('/')[3], 'color_02');
});
});