创建新DOM元素的最佳方法

时间:2012-02-23 14:39:42

标签: javascript jquery html dom

使用jquery最好是这样创建一个DOM元素: -

function create(options)
{
     $('<form action="' + options.action + '"></form>');    
}

或者像这样:

function create(options)
{
     $form = $('<form></form>');
     $form.attr('action',options.action); 
}

这可能是一个意见问题。我觉得第二种方式更清晰,但我怀疑效率较低......

6 个答案:

答案 0 :(得分:38)

Check this为自己找到答案。

Creating DOM notes using jQuery 注意越高越好(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代码会更方便,否则我会更喜欢第二个。