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

Fil*_*ino 0 each jquery attr

当我尝试使用3个不同的URL获得3个不同的结果时,'each'函数返回3次undefined.

var src = $('img').each(function(){
    $(this).attr("src");
alert(src);
    });
Run Code Online (Sandbox Code Playgroud)

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

我想要做的是用更具体的URL替换每个img url

例如:

a.jpg --> a-ok.jpg
b.jpg --> b-ok.jpg
c.jpg --> c-ok.jpg
Run Code Online (Sandbox Code Playgroud)

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

请帮忙.

谢谢

ant*_*rat 5

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

应该:

$('img').each(function(){
  var src = $(this).attr("src");
  alert( src );
});
Run Code Online (Sandbox Code Playgroud)

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

例如这样:

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

  • 图像名称中可以有任意数量的点,因此请使用:`replace('.jpg',' - ok.jpg')` (3认同)
  • 您还可以使用将函数传递给`.attr`:http://jsfiddle.net/9m51f171/.哪个更短更清晰(但如果我没有记错的话会慢一些). (2认同)