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 属性丢失“ http://jsfiddle.net/HwmEK/1/在这里查看它的工作

于 2011-06-01T11:09:08.843 回答
0

我在这里可能完全偏离轨道,但你不应该:

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

所以$(this)不是this

于 2011-06-01T11:12:49.040 回答