2011-06-01 90 views
0

我有以下HTML:jQuery的ATTR在IE7

<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?

編輯: 對不起,在這裏(http://jsfiddle.net/wabqw/)與原始代碼(是的,上面的代碼是一個簡化版本)jsFiddle例子。在Chrome中工作,但沒有IE瀏覽器(Firefox無法顯示圖像,所以沒有什麼可點擊!)。

+0

你可以做一個[jsFiddle](http://jsfiddle.net/)測試用例嗎?它似乎在IE7使用'1.4.4'和'1.6'工作正常:[http://jsfiddle.net/xV82c/](http://jsfiddle.net/xV82c/) - 如果我保持像你一樣缺少引號,還有一個「警報」,它只是有一些額外的東西。我想你只是忘了在你的問題中加上引號*。 – thirtydot 2011-06-01 11:05:06

+0

所以......你的代碼是否正確?你不關閉'src'?您在每張圖片的末尾都缺少雙引號!你應該總是驗證 - > http://validator.w3.org/之前問你爲什麼會出現錯誤 – balexandre 2011-06-01 11:05:42

回答

5

我懷疑有可能是您的HTML問題,因爲你缺少報價:

<img src="anImage.jpg /> 

應該

<img src="anImage.jpg" /> 

不同的瀏覽器以不同的方式

對於可以處理這種我在Chorme,它肯定不能在這個JSFiddle中工作:http://jsfiddle.net/apKdC/,但是當我修復這個更新的小提琴中的引號:http://jsfiddle.net/apKdC/1/這一切都和我很好。

+0

我認爲他只是忘記保留引號,因爲他將他的實際圖像'src's更改爲'anImage.jpg '。它不會在沒有引號的版本中的任何瀏覽器中提示「未定義」。 – thirtydot 2011-06-01 11:09:54

0

我可能是完全偏離軌道在這裏,但你不應該有:

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

所以$(本)沒有this

2

真正問題是,在版本9之前,Internet Explorer無法識別未知元素,例如您正在使用的HTML5元素。

您可以通過including this<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

+0

耶!這正確,但不受歡迎的答案得到了upvote! – thirtydot 2011-06-09 00:27:51