2011-05-09 66 views
1

我已經做了頁。H erejQuery的ATTR行爲1.6

這是工作的罰款與1.5版

現在1.6 IM的螢火

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/

+0

你的問題是什麼? – BoltClock 2011-05-09 07:34:28

+0

什麼是導致錯誤的jQuery調用? – 2011-05-09 07:37:53

+0

我沒有任何想法導致問題? – 2011-05-09 07:38:33

回答

0

的問題是,我想,在您的圖書館jquery.getUrlParam.js。這具有類似於下面的行:

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

這個jQuery < = 1.5下工作,因爲attr使用這兩種特性和屬性。 jQuery 1.6已經清除了這種混淆,這爲依賴這種行爲的代碼造成了一些問題。這是由於更改而破壞的代碼示例。

修正將是

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

你應該能夠在你的代碼,以解決這個問題;將它報告給插件作者可能也是明智之舉。

的另一點是,document對象上試圖attr時,由於document節點(不同於元素節點),不具有getAttribute方法的jQuery或許應該給出更好的錯誤消息。這是你神祕的錯誤信息的原因。這裏


編輯5月11日錯誤看起來像被固定在jQuery的1.6.1。 This commit到jQuery源意味着如果所選節點沒有getAttribute方法,jQuery將回退到prop方法。

這與the other changes in 1.6.1一起應該使得從< 1.6升級到1.6.1無縫。

+0

是這樣做的......感謝您的幫助。 ..是一個繁瑣的圖書館,我雖然沒有使用它... – 2011-05-09 08:08:23

+0

[jQuery bug提交](http://bugs.jquery.com/ticket/9185)。 – lonesomeday 2011-05-09 08:22:10

+0

你認爲這是一個錯誤或jQuery的改進...我不知道,雖然... ;-) – 2011-05-09 09:02:03