Эквивалент document.createElement в jQuery?
Я рефакторю старый JavaScript код, и в нем много манипуляций с DOM.
var d = document;
var odv = d.createElement("div");
odv.style.display = "none";
this.OuterDiv = odv;
var t = d.createElement("table");
t.cellSpacing = 0;
t.className = "text";
odv.appendChild(t);
Я хотел бы узнать, есть ли более эффективный способ сделать это с использованием jQuery. Я пробовал следующие методы:
var odv = $.create("div");
$.append(odv);
// И многие другие
Но не уверен, действительно ли это лучше.
5 ответ(ов)
Просто передав HTML элемента, который вы хотите добавить, в конструктор jQuery $()
, вы получите объект jQuery из новосозданного HTML, который можно добавить в DOM с помощью метода append()
.
Например:
var t = $("<table cellspacing='0' class='text'></table>");
$.append(t);
Затем вы можете программно заполнить эту таблицу, если хотите.
Это дает вам возможность указывать произвольный HTML, включая имена классов и другие атрибуты, что может оказаться более лаконичным по сравнению с использованием createElement
, а затем установки атрибутов, таких как cellSpacing
и className
, через JavaScript.
Вы можете создать и добавить элемент <div>
с текстом и классом к родительскому элементу (#parentDiv
) с помощью jQuery следующим образом:
$('<div/>', {
text: 'Текст для див',
class: 'className'
}).appendTo('#parentDiv');
В этом коде мы используем метод $('<div/>', {...})
, чтобы создать новый элемент <div>
, устанавливаем его текст с помощью свойства text
, добавляем класс с помощью свойства class
, а затем добавляем его в родительский элемент с помощью метода appendTo()
.
Создание новых элементов DOM является основной функцией метода jQuery()
. Вы можете ознакомиться с документацией по следующим ссылкам:
- Создание новых элементов в jQuery
- Особенно рекомендую обратить внимание на пример 1.1, который наглядно демонстрирует, как это делается.
Обновление
На последних версиях jQuery указанный метод не присваивает свойства, переданные во втором объекте.
Предыдущий ответ
Я считаю, что использование document.createElement('div')
вместе с jQuery
быстрее:
$(document.createElement('div'), {
text: 'Div text',
'class': 'className'
}).appendTo('#parentDiv');
Если вы хотите задать свойства в создаваемом элементе через jQuery, правильным подходом будет использовать метод .attr()
или .addClass()
. Например, вы можете сделать это так:
$('<div>', {
text: 'Div text',
class: 'className'
}).appendTo('#parentDiv');
Этот код создаст новый <div>
с заданным текстом и классом, и добавит его в элемент с id="parentDiv"
.
Для создания нового элемента <div>
с помощью jQuery вы можете использовать следующий код:
var mydiv = $('<div />'); // также работает
Этот код создает новый элемент <div>
и сохраняет его в переменной mydiv
. Вы можете затем манипулировать этим элементом, добавлять в него содержимое или вставлять его в DOM.
Как выбрать элемент по имени с помощью jQuery?
Получить координаты (X,Y) HTML-элемента
Как определить, виден ли элемент DOM в текущей области просмотра?
jQuery: Получение Выбранного Значения Из Выпадающего Списка
Как получить фактическую ширину и высоту HTML-элемента?