无法使用EACH(jquery)从IMG SRC获得ATTR值

时间:2015-01-14 18:55:13

标签: jquery each attr

每个'当我试图用3个不同的URL获得3个不同的结果时,函数返回3次未定义。

var src = $('img').each(function(){
    $(this).attr("src");
alert(src);
    });

我在S.O.找到了几个答案。但他们似乎都没有回答这个(非常基本的)问题。

我想要做的是用更具体的网址替换每个img网址

例如:

a.jpg --> a-ok.jpg
b.jpg --> b-ok.jpg
c.jpg --> c-ok.jpg

这就是为什么我需要使用EACH的所有img的URL。

请帮忙。

由于

2 个答案:

答案 0 :(得分:5)

你的代码错了。通过将src变量分配给$('img').each,您将获得元素集合,而不是src属性。

应该是:

$('img').each(function(){
  var src = $(this).attr("src");
  alert( src );
});

要替换src属性,您需要在each回调函数中执行此操作。

例如:

$('img').each(function(){
  var src = $(this).attr("src");
  $(this).attr("src", src.replace('.', '-ok.'));
});

答案 1 :(得分:0)

$('img').each(function(){
  var src = $(this).attr("src");
  console.log( src );
  // now override the src 
  var pos = src.lastIndexOf("."); // there can be numerous . in the url
  $(this).attr('src', ( src.substring(0,pos) + '-OK.'+src.substring(pos+1) ) ) ;
});