Подтвердить что ты не робот

Лучший способ создания новых элементов DOM

С помощью jquery лучше создать элемент DOM следующим образом: -

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

Или вот так:

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

Это может быть вопросом мнения. Я чувствую, что второй способ дает больше ясности, но я подозреваю, что он менее эффективен...

4b9b3361

Ответ 1

jQuery может создать объект как следующий код

$form = $('<form>', {action: 'my action'});

class является зарезервированным словом в IE и нуждается в цитировании. Полный список зарезервированных слов: Зарезервированные ключевые слова в Javascript

Ответ 2

Проверьте это, чтобы узнать о себе.

Creating DOM notes using jQuery Заметьте, что выше лучше (OPS/Sec = операции в секунду = сколько раз в секунду выполняется данный код)

И победитель теста в любом другом браузере, чем Opera:

var form = document.createElement("form"),
    $form = $(form);
form.action = options.action;

Примечание:

собственный метод будет еще быстрее, если вам не нужен объект jQuery:

var form = document.createElement("form");
form.action = options.action;

Ответ 3

Я всегда делаю второй.

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

Я предпочитаю этот метод просто потому, что он находит его более читаемым.

Ответ 4

Никогда не бойтесь оптимизировать... пока это не произойдет... вы можете использовать прямо JS:

function create(options)
{
  var newform = document.createElement('form');

  newform.setAttribute('action',options.action);
}

Помимо того, что это ничтожно, как упоминалось выше, все, что вам легче читать... т.е. вариант 2

Ответ 5

Если вы не выполняете эту функцию много раз, любая разница в производительности будет незначительной. Таким образом, я всегда бывал с самым ясным, самым простым для обновления решением (т.е. Вторым).

Ответ 6

Не уверен в фактическом подчеркивании кода jquery и не может определить, какая из них имеет лучшую производительность.

В любом случае, как я могу себе представить, в первом случае jquery все равно будет анализировать атрибуты и задавать для них значения, поэтому не должно быть большой разницы в производительности.

Итак, я думаю, что первое решение более удобно, если оно содержит много html-кода, иначе я предпочту второй.