0

私は JQuery min 1.4.2 を使用しています。いくつかのテーブルを反復処理し、番号が付けられたクラスを追加する関数があります。

$("#reportArea table", this).each(function(i){
$(this).addClass("table-" + i);
});

IE 8 と IE9 では何らかの理由でエラーがスローされますが、Firefox と Chrome ではコンソールを開いたときにエラーは表示されません。IEのエラーは次のとおりです。

Message: Invalid argument.
Line: 48
Char: 1
Code: 0
URI: /js/jquery-min.js

IE デバッガーの 48 行目を見ると、次のように表示されます。

a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue; etc.. 

コードをこれに言い換えてみましたが、それでも同じエラーが発生します。

$('#reportArea table:eq(0)').addClass('table-0');
$('#reportArea table:eq(1)').addClass('table-1');

奇妙な点は、クラスがまだ IE のテーブルに追加されていることです。

クラスを手動で追加しますが、これは JSP レポート ページであり、このページを制御する特定のテンプレートにアクセスできないことに注意してください。

4

1 に答える 1

-1
$("#reportArea table", this).each(...
                       ^^^^

ここには何がthisありますか?DOMコンテキストである必要があります。IDは(あるべき)一意であるため、セレクターには必要ないと思います。特定の関数内でその関数を呼び出さない場合、thisキーワードはグローバルオブジェクトを参照する可能性があるため、エラーが発生する可能性があります。

于 2012-05-23T20:32:09.450 に答える