1

我正在开发一个网站,正处于一个美妙的阶段,在 Chrome、Safari、Firefox(Windows 和 Mac 版)中一切正常,然后你需要额外花 24 小时为 IE 修复它。

我已经与它搏斗了很长时间,但最后发生的事情是一个变量在 IE7 中总是“未定义”。

它来自一个名为 .html5 的数据属性data-title

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

因此,我尝试过

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

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

以及关于最后一个解决方案

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

我收到一个错误:

未捕获的类型错误:对象 [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 中。

我完全不知所措。

4

2 回答 2

1

未捕获的类型错误:对象 [object Object] 没有方法“getAttribute”

因为$(this)是一个 jQuery 对象并且getAttribute()需要一个 DOM 元素。尝试一下this

于 2012-05-24T05:16:23.253 回答
0

我遇到了类似的问题,将数据属性设置为一个按钮,然后他们在 JQuery 上检索它。我不断收到“未捕获的类型错误:对象 [对象对象] 没有方法 'getAttribute'”

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

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')

如果您可以尝试动态加载,希望对您有所帮助。

于 2013-09-17T10:54:30.730 回答