我正在开发一个网站,并处于Chrome,Safari,Firefox(适用于Windows和Mac)的所有功能完美无缺的精彩阶段之一,然后您需要额外花24小时为IE修复它。< / p>
我已经与它搏斗了很多年,但最后发生的事情是变量在IE7中经常被“未定义”。
它来自名为data-title
的html5数据属性。
我环顾四周,并尝试了this和this 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 Title" data-href="#collection-description-172"></div>
当maximage / jQuery循环更改图像时,我使用data-title
属性在另一个div中设置文本。
我完全失去了,我们将非常感谢任何帮助。
答案 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')
希望您尝试动态加载会有所帮助。