4

<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.lengthIE では 3 を返し、Chrome と Firefox では 0 を返します。この問題を解決するための提案はありますか?!

4

3 に答える 3

4

あなたのために働きませんdocument.getElementsByTagName('img')か?

配列ではなく、ノードリストを返します。配列が必要な場合:

 var imgNodes = document.getElementsByTagName('img');
 var images = [].slice.call(imgNodes);
于 2012-09-05T10:54:22.070 に答える
3

タグ<img>はフレーム内の別のドキュメントにあります。

まず、メインドキュメントの右側のフレームオブジェクトを解決します。フレームの名前がある場合は、次のようにします。

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

フレームに名前を付けない場合は、によって返されるフレームの配列でフレームにインデックスを付ける必要があります。document.getElementsByTagName('frame');

ドキュメント内のすべての画像にアクセスするには、次の操作を実行できます。

frame.contentDocument.images

また

frame.contentDocument.getElementsByTagName("img")
于 2012-09-06T06:04:42.770 に答える
-1

または、jQueryを使用します。

$('img').each(function(){
        // do something with $(this).
});
于 2012-09-05T11:00:16.423 に答える