2013-07-25 3 views
2

после просмотра некоторых похожих вопросов здесь я не мог найти ничего, чтобы помочь мне исправить мою проблему. В Chrome он работает, чтобы получить IE, и я получаю "Ань, А.Н., NAN"attr() не работает в IE

в HTML

<div class="dateSelect"> 
    <div class="prev"> 
     <a class="prevMonth" name="05,27,2013">month</a> 
    </div> 
</div> 

JQuery

$(".dateSelect a").click(function(event){ 
     var dateParam = $(this).attr('name'); 

     alert("link was clicked and value of NAME is: "+dateParam); 
     dateChange(dateParam); 
     event = event || window.event; 
     event.stopPropagation(); 
    }); 

В Chrome он захватывает дату «05,27 , 2013 ", но IE это" aN, aN, NaN " У меня подлый подозрение IE не нравится attr(). Если это так, есть ли альтернативный способ? Заранее спасибо!

+1

Какую версию JQuery вы используете? и какая версия IE? –

+0

О, извините, забыли упомянуть ха-ха. Использование локальной копии, 1.9.1 и использование IE9. Нужно ли это работать для IE8 и 7 тоже –

+0

Пробовали ли вы 'this.name'. Поскольку он является допустимым атрибутом для тега привязки, я предполагаю, что он должен давать вам имя правильно везде. – mohkhan

ответ

3

name имеет те же правила, как id, не может начинаться с цифры и без специальных символов, а IE ненавидит ...

в этом случае использовать data- атрибуты, такие как:

<a class="prevMonth" data-name="05,27,2013">month</a> 

и с вашего скрипта пройдите:

или $(this).data("name").

он работает даже с IE6 (если вы все еще используете версию 1.x из JQuery) :)

+0

Да, это сработало, и это помогло мне еще раз решить, что еще происходит! Большое вам спасибо за вашу помощь :) –

+0

Но разве атрибуты данных доступны только в браузерах, поддерживающих html5? Я думал, что ie не поддерживает html5 – pete

+0

'data-' - это просто атрибут, а более старый браузер не знает, что с ними делать, поэтому он игнорируется, но 'data-' не только для браузера с поддержкой HTML5, это просто способ передачи дополнительной информации ... – balexandre

Смежные вопросы