6

私は別の開発者コードをデバッグしようとしていますが、この変数に何が格納されているのかを一生理解できません。

var dl = $("<dl>",{class: 'my_class'});

この行は、IE8以下で「予期される識別子、文字列、または数値」エラーメッセージを生成していますが、他のブラウザは生成していません。同じことを別の構文で実行できる他の方法があるかどうかを調べようとしています。 。

何かアドバイスをいただければ幸いです。

4

2 に答える 2

8

の値を持つ属性を持つdl(jQuery オブジェクトにラップされた) 要素を作成しています。この形式の関数の詳細については、 jQuery のドキュメントを参照してください。classmy_class

classは JavaScript の予約語であるため、エラーが発生します。引用することで修正できます:

var dl = $("<dl>", { "class": "my_class" });

または、代わりにプロパティを設定することもできますclassName(どのブラウザーでも引用する必要はありません)。

var dl = $("<dl>", { className: "my_class" });

ES5 仕様では、予約語をプロパティ名として使用できると記載されていることに注意してください。しかし、明らかに古いバージョンの IE をサポートする必要があるため、それを忘れてとにかくそれらを引用する必要があります。バージョン 9 未満の IE のサポートをやめれば、コードをまったく変更する必要はありません ;)

于 2012-10-03T19:26:34.510 に答える
2

classは JavaScript の予約語です。引用符で囲む必要があります。

var dl = $("<dl/>",{'class': 'my_class'});
于 2012-10-03T19:26:43.580 に答える