2011-05-17 61 views
5

当创建的jQuery对象我使用以下语法最近,如所描述here什么是使用属性创建jQuery对象的首选方式?

var $el = $('<div/>', { 
    class: 'class-1 class-2' 
}); 

Safari浏览器5.0.5在哪里使用上述结构的点给出语法错误。

删除第二个参数并使用addClass添加类会消除错误,但看起来相当不雅观。

你如何创建你的对象?我试着用attr({class:'class-1'}),但是收到了相同的语法错误。

+1

如果你把单词“类”单引号或双引号,它会正常工作。 – Pointy 2011-05-17 13:00:53

回答

7

您不能使用class;这是一个保留字。

使用className代替:

var $el = $('<div/>', { 
    className: 'class-1 class-2' 
}); 
+3

如果你引用它,你可以使用“class”。 – Pointy 2011-05-17 13:00:30

+0

啊,当然!非常感谢。经过更多的研究,我发现了不同的元素创建结构的性能测试:http://jsperf.com/create-element-with-attributes-jquery-1-4-object-vs-att/2看起来上面的语法不是最好的表现明智。 – vorpyg 2011-05-17 13:22:24

1

由于class是一个保留字,你必须把它放在引号。

var $el = $('<div/>', { 
    "class": 'class-1 class-2' 
}); 
1

由于class是保留关键字,因此出现错误。你可以使用一个字符串作为标识符时,属性名是保留关键字:

var $el = $('<div/>', { 
    'class': 'class-1 class-2' 
}); 
3

使属性名称的字符串:

var $el = $('<div/>', { 
    'class': 'class-1 class-2' 
}); 

JSFiddle Example

相关问题