0

私はいくつかのソースを含むいくつかの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'れます。誰か助けてもらえますか? とてもthx。

4

3 に答える 3

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');
    });
});
于 2013-06-18T10:26:51.513 に答える
1

$(this)する必要があります$(this).attr('src')

于 2013-06-18T10:26:27.077 に答える
1

$(this)URL ではなく、jQuery オブジェクト ( ) の何かを置き換えようとしています。jQuery オブジェクトにはメソッドがありませんが .replace、文字列にはメソッドがあります。また、最初の画像の URL を常に操作したい場合を除き (これは意味がないようです)、間違った要素にアクセスしています (私は信じています)。

試す:

color_image.on('click',function(){
   $(this).attr('src', function(i, src) {
       return src.replace(src.split('/')[3], 'color_02');
   });
});
于 2013-06-18T10:27:05.093 に答える