0

私は次のHTMLを持っています:

<a href="myPage.htm">
  <img src="anImage.jpg />
</a>
<a href="yourPage.htm">
  <img src="anotherImage.jpg />
</a>
<a href="everyonesPage.htm">
  <img src="stillAnotherImage.jpg />
</a>

そして、次の JavaScript (jQuery を使用):

$(document).ready(function(){
  $('a').live('click', function(e){
    e.preventDefault();
    alert($('img', this).attr('src'));
  });
});

Firefox では、これはクリックされた画像の src 属性を警告しますが、IE7 および IE6 では「未定義」を警告します。これがなぜなのか、関連するアンカータグをクリックしたときに画像のsrcを返す方法はありますか?

編集:申し訳ありませんが、元のコードを使用したjsFiddleの例( http://jsfiddle.net/wabqw/ )(はい、上記のコードは簡略化されたバージョンです)。Chrome では動作しますが、IE では動作しません (Firefox では画像が表示されないため、クリックする必要はありません!)。

4

4 に答える 4

5

引用符がないため、HTML に問題がある可能性があると思われます。

<img src="anImage.jpg />

する必要があります

<img src="anImage.jpg" />

異なるブラウザは異なる方法でこれを処理する場合があります

私にとって、Chorme では、この JSFiddle: http://jsfiddle.net/apKdC/では確かに機能しませんが、この更新されたフィドルで引用符を修正すると: http://jsfiddle.net/apKdC/1/それはすべて正常に動作します。

于 2011-06-01T11:04:46.470 に答える
2

本当の問題は、バージョン 9 より前のInternet Explorer は、使用している HTML5 要素などの未知の要素を認識しないことです。

これをに含めることで修正できます<head>

<!--[if lt IE 9]>
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

背景情報については、http: //paulirish.com/2011/the-history-of-the-html5-shiv/を参照してください。

これはまさにそれを行い、IE6/7 で動作するページです: http://jsbin.com/izina3

于 2011-06-01T11:46:01.117 に答える
0

正しいhtml構文がありません。最初の画像の src 属性を 参照してください。

于 2011-06-01T11:09:08.843 に答える
0

ここでは完全に脱線する可能性がありますが、次のことはすべきではありません。

alert($('img', $(this)).attr('src'));

だから$(this)ではないthis

于 2011-06-01T11:12:49.040 に答える