获取我的数组中的每个 ID 映像 src


var nameset_array = ["display1", "display2", "display3"];
//store my id inside my array.
for(var h = 0; h < nameset_array.length; h++){
   //loop thought the array and get each id image src.
   //is not working.
   //tested alert(nameset_array[h].src), not working too.
    alert(nameset_array[h].attr("src"));
  }

我已经将我的 img id 存储到一个数组中,我想获取每个数组名称 img src,如何获取数组中的每个 id 图像 src?

我测试了nameset_array[h].src,它的效果不佳,谁能教我如何做到这一点?

试试这个:

var nameset = ["display1", "display2", "display3"];
for(var h = 0; h < nameset.length; h++){
   var $img = $('#'+nameset[h]);
   if($img.length > 0)
   {
      alert($($img[0]).attr('src'))
   }    
}

工作小提琴

喜欢:

$( document ).ready(function() {
var nameset = ["display1", "display2", "display3"];
//store my id inside my array.
$( nameset ).each(function( index, val ) {
  console.log($("#"+val).attr("src"));
});
});

您的函数将不起作用,因为您试图获取数组元素(字符串)的src -Attribute。所以你试过的是这样的:

"display1".src

我敢打赌,现在你明白为什么这不起作用了。

在您的情况下,您必须先找到该元素,然后才能"使用"它。为了你的nameset_array项都是现有元素的id,你的函数只需要这个小改动:

document.getElementById(nameset_array[h]).src

如果没有,请在尝试获取元素信息之前检查该元素是否存在。下面是一个完整的示例:

var nameset_array = ["display1", "display2", "display3"];
for(var h = 0; h < nameset_array.length; h++) {
    var img = document.getElementById(nameset_array[h]);
    if (img) {
        alert(img.src);
    }
}

如果你不需要旧的浏览器支持,你可能不想使用需要更少代码的更新可能性:

["display1", "display2", "display3"].forEach(function(id) {
    var img = document.getElementById(id);
    if (img) {
        alert(img.src);
    }
});

var nameset_array = ["display1", "display2", "display3"];
for(var h = 0; h < nameset_array.length; h++) {
    var img = document.getElementById(nameset_array[h]);
    if (img) {
        alert(img.src);
    }
}
<img id="display1" src="http://foo.bar/img1.png"/>
<img id="display2" src="http://foo.bar/img2.png"/>
<img id="displayX" src="http://foo.bar/img3.png"/>
<img id="display4" src="http://foo.bar/img4.png"/>

这样做

var nameset = ["display1", "display2", "display3"];
//store my id inside my array.
for(var h = 0; h < nameset.length; h++){
   //loop thought the array and get each id image src.
   //is not working.
   //tested alert(nameset[h].src), not working too.
    alert(document.getElementById(nameset[h]).src);
  }

最新更新