我创建了一个页面ere
版本1.5正常运行
现在1.6我在firebug中收到此错误
elem.getAttribute is not a function
[Break On This Error] ret = elem.getAttribute( name );
和铬几乎相同
Uncaught TypeError: Object #<HTMLDocument> has no method 'getAttribute'
如何纠正? 我是否必须像jquery 1.6 api一样将所有内容更改为prop http://api.jquery.com/prop/
答案 0 :(得分:0)
我认为问题出在你的图书馆jquery.getUrlParam.js
。这有以下几行:
if ($(this).attr("nodeName")=="#document") {
这在jQuery&lt; = 1.5下工作,因为attr
使用了属性和属性。 jQuery 1.6已经清除了这种混乱,这为依赖于这种行为的代码带来了一些问题。这是由于更改而破坏的代码示例。
更正将是
if (this.nodeName === "#document") {
您应该能够在代码中修复此问题;将它报告给插件作者可能也是明智之举。
另一点是,jQuery在attr
对象上尝试document
时可能会提供更好的错误消息,因为document
节点(与元素节点不同)没有getAttribute
方法。这是您的神秘错误消息的原因。
编辑5月11日此处的错误看起来像是在jQuery 1.6.1中修复。 This commit到jQuery源意味着如果所选节点没有prop
方法,jQuery会回退到getAttribute
方法。
这与the other changes in 1.6.1一起应该从&lt; 1.6无缝升级到1.6.1。