【问题标题】:attr() not working in IEattr() 在 IE 中不起作用
【发布时间】:2013-07-25 23:18:46
【问题描述】:

在这里浏览了一些类似的问题后,我找不到任何可以帮助我解决问题的东西。在 Chrome 中它可以工作,进入 IE,我得到“aN,AN,NAN”

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()。如果是这种情况,是否有替代方法?提前谢谢!

【问题讨论】:

  • 您使用的是哪个版本的 jQuery?什么版本的 IE?
  • 哦,对不起,忘了说哈哈。使用本地副本,1.9.1 并使用 IE9。需要它也适用于 IE8 和 7
  • 你试过this.name。由于它是锚标记的有效属性,我假设它必须在任何地方正确地为您提供名称。

标签: jquery internet-explorer attr


【解决方案1】:

nameid的规则一样,不能以数字开头,也不能有特殊字符,IE讨厌...

在这种情况下,使用data- 属性,例如:

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

并从您的脚本中通过:

$(this).attr("data-name")$(this).data("name")

它甚至适用于 IE6(如果您仍在使用 jQuery 的 1.x 版):)

【讨论】:

  • 是的,它起作用了,它帮助我进一步排除了现在发生的其他问题!非常感谢您的帮助:)
  • 但是 data- 属性不是只有支持 html5 的浏览器才有的吗?我以为ie不支持html5
  • data- 只是一个属性,旧的浏览器不知道如何处理它们,所以它被忽略了,但data- 不仅适用于支持 HTML5 的浏览器,是一种简单的方法传递更多信息...
猜你喜欢
  • 1970-01-01
  • 2012-09-21
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
相关资源
最近更新 更多