1

我在这里做了一个页面

它在 1.5 版中运行良好

现在 1.6 我在萤火虫中得到这个错误

 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 http://api.jquery.com/prop/中那样更改所有内容以支持

4

1 回答 1

0

我认为,问题出在您的图书馆jquery.getUrlParam.js中。这有如下几行:

if ($(this).attr("nodeName")=="#document") {

这在 jQuery <= 1.5 下有效,因为attr同时使用了属性和属性。jQuery 1.6 消除了这种混乱,这给依赖这种行为的代码带来了一些问题。这是由于更改而损坏的代码示例。

更正将是

if (this.nodeName === "#document") {

您应该能够在您的代码中解决此问题;将其报告给插件作者可能也是明智的。

还有一点是,jQuery 在尝试对象时可能会给出更好的错误消息attrdocument因为document节点(与元素节点不同)没有getAttribute方法。这是您的神秘错误消息的原因。


5 月 11 日编辑这里的错误看起来像是在 jQuery 1.6.1 中修复的。 这个对 jQuery 源的提交意味着prop如果选定的节点没有方法,jQuery 会回退到方法上getAttribute

这与1.6.1 中的其他更改一起应该可以无缝地从 <1.6 升级到 1.6.1。

于 2011-05-09T07:53:41.250 回答