jQuery - IE7 - 变量未定义(适用于Chrome,Safari,Firefox)

时间:2012-05-24 05:11:50

标签: javascript jquery internet-explorer

我正在开发一个网站,并处于Chrome,Safari,Firefox(适用于Windows和Mac)的所有功能完美无缺的精彩阶段之一,然后您需要额外花24小时为IE修复它。< / p>

我已经与它搏斗了很多年,但最后发生的事情是变量在IE7中经常被“未定义”。

它来自名为data-title的html5数据属性。

我环顾四周,并尝试了thisthis stackoverflow问题中提供的解决方案。

因此,我试过了

$(this).attr('data-title');

$(this).data('title');

关于最后的解决方案

var newTitle = $(this).getAttribute("data-title");

我收到错误:

  

未捕获TypeError:对象[object Object]没有方法'getAttribute'

问题是,我无法使用getElementById加载变量,因为元素是由jQuery Maximage生成的

生成的元素如下所示:

  

<div class="mc-image collection-image" title="" style="background-image: url(http://www.server.com/image.jpg); position: absolute; top: 0px; left: 0px; z-index: 12; opacity: 1; display: block; width: 1292px; height: 670px; " data-title="The&nbsp;Title" data-href="#collection-description-172"></div>

当maximage / jQuery循环更改图像时,我使用data-title属性在另一个div中设置文本。

我完全失去了,我们将非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

  

未捕获TypeError:对象[object Object]没有方法   '的getAttribute'

因为$(this)是jQuery对象而getAttribute()需要DOM元素。只需this

即可

答案 1 :(得分:0)

我遇到了类似的问题,将data属性设置为按钮,然后在JQuery上检索它。我一直得到&#34; Uncaught TypeError:对象[object Object]没有方法&#39; getAttribute&#39;&#34;

我用以下方法解决了这个问题:

http://www.rqna.net/qna/kvtryn-jquery-ie7-variable-is-undefined-works-in-chrome-safari-firefox.html

拥有:

<input type="button" class="btn" data-passengerMode="@item.PassengerMode"/>

这对我有用:

$('#btn_0').get(0).getAttribute('data-passengerMode')

或者这个

$('#btn_0')[0].getAttribute('data-passengerMode')

所有这些都是因为我不想使用html方法:

document.getElementById('btn_0')

希望您尝试动态加载会有所帮助。