解释这个jQuery选择器?

时间:2012-10-03 19:25:08

标签: jquery internet-explorer

我正在尝试调试另一个开发人员代码,我不能为我的生活找出存储在这个变量中的内容:

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

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

任何建议都将受到赞赏。

2 个答案:

答案 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'});