1

ここにページを作りまし

バージョン1.5で問題なく動作していました

現在、1.6 imで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 http://api.jquery.com/prop/のように、すべてを prop に変更する必要がありますか ?

4

1 に答える 1

0

問題は、あなたの図書館にあると思いますjquery.getUrlParam.js。これには、次のような行があります。

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

attrプロパティと属性の両方を使用しているため、これはjQuery <= 1.5で機能しました。jQuery 1.6 ではこの混乱が解消され、この動作に依存するコードにいくつかの問題が生じました。これは、変更により壊れたコードの例です。

修正は

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

コードでこれを修正できるはずです。プラグインの作成者に報告することもおそらく賢明です。

もう 1 つのポイントは、ノード (要素ノードとは異なり) にはメソッドがないため、jQuery はオブジェクトを試行attrするときにおそらくより適切なエラー メッセージを表示するはずだということです。これが、謎のエラー メッセージの原因です。documentdocumentgetAttribute


編集 5 月 11 日ここのエラーは、jQuery 1.6.1 で修正されたようです。 このjQuery ソースへのコミットpropは、選択したノードにメソッドがない場合、jQuery がメソッドにフォールバックすることを意味しますgetAttribute

これは、1.6.1 の他の変更とともに、 <1.6 から 1.6.1 へのアップグレードをシームレスにするはずです。

于 2011-05-09T07:53:41.250 に答える