替换img属性仅适用于第一次

时间:2013-08-12 02:57:59

标签: jquery html html5 replace jquery-attributes

所以我有这个jQuery函数:

$('ul li').click(function () {
    var title = $('img', this).attr("title");
    $("a.songtitle span").text(title);

    var artist = $('img', this).attr("artist");
    $("a.songartist span").text(artist);

    var artwork = $('img', this).attr('src');
    artwork = artwork.replace('src');

    $('img.a').attr('src', artwork);
    $(this).addClass('playing').siblings().removeClass('playing');

    audio.load($('a#tunes', this).attr('data-src'));
    audio.play();
});

因此,点击后,它会从img src属性获取专辑图片并将其替换为当前版本。正如您在this example中看到的那样,它只在第一次工作,然后当您单击“下一步”时不再替换img src属性。为什么会这样?如果有人可以提供帮助,那将非常感激。谢谢!

3 个答案:

答案 0 :(得分:1)

这一行

  

$('img.a')。attr('src',artwork);

正在使用类src替换所有图像的a属性值。

另外,你错过了这一行replace()的第二个参数

  

artwork = artwork.replace('src');

幸运的是,除非字符串“src”出现在图片网址中,否则它没有做任何事情。

答案 1 :(得分:0)

如果您运行代码然后在检查器/控制台中运行此行:

$('img.a');

您会看到您已将每张图片更改为完全相同的来源。 您应该考虑为显示此信息的项目提供唯一的ID,因此您可以使用以下内容开始调用它:

$('#myID img').attr('src',artwork);

答案 2 :(得分:0)

我似乎已经弄明白了。我通过这样做来修复它:

$('img.a:first').attr('src', artwork);