IE7中的jQuery attr

时间:2011-06-01 11:00:47

标签: javascript jquery internet-explorer attributes attr

我有以下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 个答案:

答案 0 :(得分:5)

我怀疑您的HTML可能存在问题,因为您缺少引号:

<img src="anImage.jpg />

应该是

<img src="anImage.jpg" />

不同的浏览器可能以不同的方式处理此问题

对我而言,在Chorme中,它肯定不适用于这个JSFiddle:http://jsfiddle.net/apKdC/,但是当我在这个更新的小提琴中修改引号时:http://jsfiddle.net/apKdC/1/一切正常。

答案 1 :(得分:2)

真正的问题是在版本9之前,Internet Explorer无法识别未知元素,例如您正在使用的HTML5元素。

您可以在<head>

中按including this进行修正
<!--[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

答案 2 :(得分:0)

你没有正确的html语法,请在第一张图片中看到src属性丢失“ http://jsfiddle.net/HwmEK/1/在这里看到它的工作

答案 3 :(得分:0)

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

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

所以 $(this)不是this