使用jquery最好是这样创建一个DOM元素: -
function create(options)
{
$('<form action="' + options.action + '"></form>');
}
或者像这样:
function create(options)
{
$form = $('<form></form>');
$form.attr('action',options.action);
}
这可能是一个意见问题。我觉得第二种方式更清晰,但我怀疑效率较低......
答案 0 :(得分:38)
Check this为自己找到答案。
注意越高越好(OPS/Sec = operations per second = how many times per second the given code executes)
除了 Opera 之外的其他所有浏览器中的测试获胜者:
var form = document.createElement("form"),
$form = $(form);
form.action = options.action;
注意:强>
如果您不需要 jQuery 对象,原生方法会更快:
var form = document.createElement("form");
form.action = options.action;
答案 1 :(得分:29)
jQuery可以创建对象如下代码
$form = $('<form>', {action: 'my action'});
class
是IE中的保留字,需要引用。查看保留字的完整列表:Reserved Keywords in Javascript
答案 2 :(得分:4)
我总是做第二个。
function create(options)
{
$form = $('<form></form>');
$form.attr('action',options.action);
}
我更喜欢这种方法,因为它发现它更具可读性。
答案 3 :(得分:3)
永远不会伤害优化......直到它......你可以直接使用JS:
function create(options)
{
var newform = document.createElement('form');
newform.setAttribute('action',options.action);
}
除此之外,它可以忽略不计,如上所述,无论你更容易阅读... ...选项2
答案 4 :(得分:1)
除非您多次运行此功能,否则任何性能差异都可以忽略不计。因此,我总是会使用最清晰,最容易更新的解决方案(即第二个)。
答案 5 :(得分:0)
不确定jquery的实际下划线代码,无法判断哪个代码具有更好的性能。
无论如何,我可以想象,在第一种情况下,jquery会解析属性并为它们设置值,所以不应该有很大的性能差异。
所以我认为第一个解决方案如果包含大量的html代码会更方便,否则我会更喜欢第二个。