13

Эквивалент document.createElement в jQuery?

13

Я рефакторю старый 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 ответ(ов)

1

Просто передав HTML элемента, который вы хотите добавить, в конструктор jQuery $(), вы получите объект jQuery из новосозданного HTML, который можно добавить в DOM с помощью метода append().

Например:

var t = $("<table cellspacing='0' class='text'></table>");
$.append(t);

Затем вы можете программно заполнить эту таблицу, если хотите.

Это дает вам возможность указывать произвольный HTML, включая имена классов и другие атрибуты, что может оказаться более лаконичным по сравнению с использованием createElement, а затем установки атрибутов, таких как cellSpacing и className, через JavaScript.

0

Вы можете создать и добавить элемент <div> с текстом и классом к родительскому элементу (#parentDiv) с помощью jQuery следующим образом:

$('<div/>', {
    text: 'Текст для див',
    class: 'className'
}).appendTo('#parentDiv');

В этом коде мы используем метод $('<div/>', {...}), чтобы создать новый элемент <div>, устанавливаем его текст с помощью свойства text, добавляем класс с помощью свойства class, а затем добавляем его в родительский элемент с помощью метода appendTo().

0

Создание новых элементов DOM является основной функцией метода jQuery(). Вы можете ознакомиться с документацией по следующим ссылкам:

0

Обновление

На последних версиях 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".

0

Для создания нового элемента <div> с помощью jQuery вы можете использовать следующий код:

var mydiv = $('<div />'); // также работает

Этот код создает новый элемент <div> и сохраняет его в переменной mydiv. Вы можете затем манипулировать этим элементом, добавлять в него содержимое или вставлять его в DOM.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь