2010-10-15 77 views
0

我试图循环浏览页面上的所有图像,应该很容易,但我看不到这里即将出错。 imgs会填充图像,但imgs.length返回0;它有点愚蠢,但我不知道。javascript图像阵列

var imgs = document.getElementsByTagName('img'); 
console.log(imgs); 
console.log(imgs.length); 

if(imgs != null){ 
    //console.log('in loop'); 
    for(i=0; i<imgs.length; i++){ 
     console.log(imgs.item(i).src); 
    } 
} 
+0

当这段代码运行? – 2010-10-15 11:18:15

+1

'if(imgs!= null){'不正确; 'imgs'将永远是一个数组,但它可能是空的。将其更改为'if(imgs.length){'。这不会解决你的问题,但仅供将来参考。 – Matt 2010-10-15 11:21:09

+0

谢谢我会检查出来,想通了,我在图片加载之前在顶部的脚本中调用它,只是改变它来调用onload的身体,它的工作原理。小书签的代码应该不重要,但仅仅在测试中不起作用。对于愚蠢的问题抱歉 – michael 2010-10-15 11:25:37

回答

0
window.onload = function() { 

var imgs = document.getElementsByTagName('img');// or document.images; 

console.log(imgs.length); 

if(imgs.length > 0){ 
    for(var i=0; i<imgs.length; i++){ 
     console.log(imgs[i].src); 
    } 
} 
}; 

jQuery的

$(document).ready(function() { 
    console.log($('imgs').length); 

    $('imgs').each(function(i, img){ 
      console.log(img.src); 
    }); 
}); 
+0

首先包括“纯粹的JS”的荣誉。如果你打算展示jQuery的等价物,那么为什么不更新整个函数体来利用呢? '$('img')。each(function(index,img){console.log(img.src);});' – 2010-10-15 12:21:02

+0

@Ken - 非常整齐,谢谢。 – 2010-10-15 13:18:16

1

正如Nick所说,脚本应该在图像加载后运行。如果脚本在标题中,它将无法正常工作,因为图像尚未加载。