我正在尝试调试另一个开发人员代码,我不能为我的生活找出存储在这个变量中的内容:
var dl = $("<dl>",{class: 'my_class'});
此行在IE8及更低版本中生成“预期的标识符,字符串或数字”错误消息,但没有其他浏览器,我试图弄清楚是否有其他方法可以完成同样的事情,语法不同。
任何建议都将受到赞赏。
答案 0 :(得分:8)
它创建了一个dl
元素(包装在jQuery对象中),其class
属性的值为my_class
。有关此函数形式的更多信息,请参阅jQuery docs。
您收到错误,因为class
是JavaScript中的保留字。您可以通过引用来修复它:
var dl = $("<dl>", { "class": "my_class" });
或者,您可以设置className
属性(您不必在任何浏览器中引用它):
var dl = $("<dl>", { className: "my_class" });
请注意,ES5规范说明可以使用保留字作为属性名称。但是,由于你显然需要支持旧版本的IE,你将不得不忘记它并引用它们。如果您只是放弃对版本9以下的IE的支持,则根本不需要更改代码;)
答案 1 :(得分:2)
class
是JavaScript中的保留字,您应该用引号括起来:
var dl = $("<dl/>",{'class': 'my_class'});