6

我正在尝试调试另一个开发人员的代码,但我一生都无法弄清楚这个变量中存储了什么:

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

此行在 IE8 及更低版本中生成“预期的标识符、字符串或数字”错误消息,但没有其他浏览器,我试图弄清楚是否有其他方法可以用不同的语法完成同样的事情.

任何意见,将不胜感激。

4

2 回答 2

8

它正在创建一个dl元素(包装在一个 jQuery 对象中),其class属性值为my_class. 有关此函数形式的更多信息,请参阅jQuery 文档

您收到错误是因为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 回答