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



我正在开发一个网站,并且处于一个美妙的阶段,在Chrome,Safari,Firefox(适用于Windows和Mac)中一切都可以完美运行,然后您需要花费额外的24小时为IE修复它。

我已经为此苦苦挣扎了很长时间,但最后发生的事情是IE7中变量不断"未定义"。

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

我环顾四周,也尝试了这个和这个堆栈溢出问题中提供的解决方案。

因此,我尝试过

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

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

关于最后一个解决方案

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

我收到一个错误:

未捕获的类型错误:对象 [对象对象] 没有方法"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>

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

我完全不知所措。

未捕获的类型错误: 对象 [对象对象] 没有方法 'getAttribute'

因为$(this)是一个jQuery对象,getAttribute()需要一个DOM元素。只需this即可尝试

我遇到了类似的问题,将数据属性设置为按钮,他们在 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')

希望它有助于,如果你可以尝试你的动态加载。

最新更新