Создание элементов
Начнём с создания элементов для последующей работы с ними. Документация нам заботливо сообщает, что тут всё просто:
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, но как по мне – в данном случае он не менее удобен любых фреймворков.