Создание элементов
Начнём с создания элементов для последующей работы с ними. Документация нам заботливо сообщает, что тут всё просто:
var $myDiv = $('<div id="my" class="some"></div>');
Этот пример вполне рабочий, да вот только производительностью он блистать не будет, ведь внутри будет всё это разбираться с помощью метода jQuery.parseHTML()
, который совсем не быстрый. Но мы можем помочь парсеру, если атрибуты элемента будем передавать вторым параметром:
var $myDiv = $("<div>", { "id":"my", "class":"some" });
Можем сделать ещё проще:
var $myDiv = $("<div>").attr({ "id":"my", "class":"some" });
И этот способ будет работать капельку быстрее. Но почему? Для того, чтобы ответить на данный вопрос, загляните в код jQuery, в самую главную функцию init()
. В её коде можно найти алгоритм разбора предыдущего примера:
Парсим строку, и создаём DOM-элемент в jQuery-обёртке
Заходим в цикл обработки переданных параметров:
Проверяем, а нет ли функции у нашего элемента с таким названием
Если нет, то устанавливаем атрибут элемента, используя метод
attr()
Выводы делайте сами, гдe мы тут время потеряли :)
Ну и напоследок опишу самый быстрый способ, который я часто использую:
var myDiv = document.createElement("div");
myDiv.id = "my";
myDiv.className = "some";
Да, это «чистый» JavaScript, но как по мне – в данном случае он не менее удобен любых фреймворков.
Last updated