Jquery替换所有具有相同名称的图像

时间:2011-05-13 12:18:14

标签: jquery

我有几个具有相同“name”属性的标签。像这样:

<img name="pic1" src="" />
<img name="pic1" src="" />
<img name="pic1" src="" />

现在,我想替换所有具有相同“名称”的图像的src。我怎么能用Jquery做到这一点。

提前致谢。

7 个答案:

答案 0 :(得分:4)

首先,您不应在图像上使用name属性。相反,请使用class属性。

然后你会做这样的事情:

$('img.someClassName').attr('src', '/images/foo.jpg');

如果您想查看当前来源,则必须采取另一种方法:

$('img.someClassName').each(function() {
    // let's say we only want to alter the src
    // for images of ponies
    if ($(this).attr('src') == '/images/ponies.jpg') {
        // awesome pony detection algorithm triggered!
        $(this).attr('src', '/images/unicorn.jpg');
    }
});

答案 1 :(得分:1)

请改用类名,以保持HTML有效:

<img class="pic1" src="" />
<img class="pic1" src="" />
<img class="pic1" src="" />
$(function () {
    $("img.pic1").attr('src', 'myimg.png');
});

您还可以将函数传递给attr,以便为每个<img>元素提供不同的src:

 $("img.pic1").attr('src', function (index, oldVal) {
     if (oldVal == "default-img.png")
         this.src = "img"+index+".png";
     else
         this.src = "default-img.png";
 });

答案 2 :(得分:0)

name对于图片代码不是有效的html属性,但以下内容仍可以使用。

$().ready(function(){
  $('img[name="pic1"]').attr('src','new-src-value')
})

答案 3 :(得分:0)

$('img').each(function() {
    $('img[name="'+this.getAttribute('name')+'"]').attr('src',newSrc);
});

这是一种更改任何名称

的所有实例的方法

答案 4 :(得分:0)

$(function() {
    $('img[name=pic1]').attr('src', 'http://placehold.it/50x50');
});

这是jsfiddle上的an example

答案 5 :(得分:0)

name标记替换为class标记,并使用以下内容:

$('img.pic1').each(function(){
    this.src = 'new source';
});

答案 6 :(得分:0)

$('img[name="pic1"]').attr('src', 'location.png');

我认为以上一定会奏效:)