document.images没有加载到chrome或firefox上,但是它被加载到IE上

时间:2012-09-05 10:51:33

标签: javascript html dom cross-browser

我有一个锚标记<a>,其中包含图像标记<img>,我在该锚标记上调用javascript函数,如下所示:

<a href="javascript: foo();"><img ...></a>
<a href="javascript: foo();"><img ...></a>
<a href="javascript: foo();"><img ...></a>

foo()内部,我使用document.images来检索包含3个图像的数组。它在IE中运行良好,但它不适用于chrome和firefox!

document.images.length在IE上返回3,在Chrome和Firefox上返回0。您有什么建议可以解决这个问题吗?!

3 个答案:

答案 0 :(得分:4)

document.getElementsByTagName('img')不会为你效劳吗?

它不返回数组,而是返回节点列表。如果你需要一个数组:

 var imgNodes = document.getElementsByTagName('img');
 var images = [].slice.call(imgNodes);

答案 1 :(得分:3)

您的<img>标记位于框架中的其他文档中。

首先解析主文档中的右框架对象。如果您有框架的名称,请执行以下操作:

var frame = document.querySelector("frame[name='NAME']");

如果你没有命名你的帧,那么你必须索引document.getElementsByTagName('frame');

返回的帧数组上的帧。

要访问文档中的所有图像,您可以执行以下操作:

frame.contentDocument.images

frame.contentDocument.getElementsByTagName("img")

答案 2 :(得分:-1)

或者使用jQuery。

$('img').each(function(){
        // do something with $(this).
});