繁体   English   中英

IE7 中的 jQuery 属性

[英]jQuery attr in IE7

我有以下 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 无法显示图像,因此没有可点击的内容。)。

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

<img src="anImage.jpg />

应该

<img src="anImage.jpg" />

不同的浏览器可能会以不同的方式处理这个问题

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

真正的问题是,在第 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

您没有正确的 html 语法请参阅第一个图像中的 src 属性丢失“ http://jsfiddle.net/HwmEK/1/在这里查看它的工作

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

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

所以$(this)不是this

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM