JQuery attr в IE7 - PullRequest
       37

JQuery attr в IE7

0 голосов
/ 01 июня 2011

У меня есть следующий 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 ]

5 голосов
/ 01 июня 2011

Я подозреваю, что может быть проблема с вашим HTML, поскольку вы пропускаете кавычки:

<img src="anImage.jpg />

Должно быть

<img src="anImage.jpg" />

Различные браузеры могут обрабатывать это по-разному

Для меня, в Chorme, это, конечно, не работает в этом JSFiddle: http://jsfiddle.net/apKdC/, однако, когда я исправляю кавычки в этой обновленной скрипте: http://jsfiddle.net/apKdC/1/ все это работает нормально.

2 голосов
/ 01 июня 2011

Проблема real заключается в том, что до версии 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

0 голосов
/ 01 июня 2011

Я мог бы быть совершенно не в курсе, но если бы у вас не было:

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

То есть $ (это) не this

0 голосов
/ 01 июня 2011

у вас нет правильного синтаксиса html, см. Атрибут src на первом изображении отсутствует " http://jsfiddle.net/HwmEK/1/ смотри здесь, как он работает

...