如何使用jQuery动态更改文件源

时间:2013-06-18 10:23:32

标签: javascript jquery dom

我有一些来源的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',有人可以帮忙吗?很多。

3 个答案:

答案 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');
   });
});