У меня есть 2 способа, которыми я могу создать <div>
использование jQuery
.
Либо:
var div = $("<div></div>");
$("#box").append(div);
Или:
$("#box").append("<div></div>");
Каковы недостатки использования второго способа, кроме повторного использования?
.html
, но не.append
во 2-м случае?Ответы:
Первый вариант дает вам больше гибкости:
И, конечно,
.html('*')
переопределяет содержание, а.append('*')
не нет, но я думаю, это был не ваш вопрос.Еще одна хорошая практика - использовать префикс переменных jQuery следующим образом
$
:есть ли какая-то особая причина использования $ with variable в jQuery?
Размещение кавычек вокруг имени
"class"
свойства сделает его более совместимым с менее гибкими браузерами.источник
$
мой взгляд, хорошая практика начинать имена коллекций jQuery с " ". Просто отметьте, что то, что вы сделали, не требует$div
:$("<div>", {id: 'foo', class: 'a', click: function () {}}).appendTo("#box");
$div
, Я не видел этот синтаксис раньше, но я новичок в Jquery.$("<div>", {id: "foo", class: "a"});
, Я хочу знать, есть ли другие варианты для этогоЯ лично считаю, что для кода важнее быть читаемым и редактируемым, чем исполнителем. Какой из них вам проще найти, и он должен быть тем, который вы выбрали для перечисленных выше факторов. Вы можете написать это как:
И ваш первый метод как:
Но насколько читаемость идет; Подход JQuery мой любимый . Следуйте этой полезной уловке, заметкам и рекомендациям jQuery
источник
Гораздо более выразительным образом,
Ссылка: Документы
источник
class
должен быть в кавычках, в соответствии с документами (через ссылку на Документы выше): «имя« класс »должно быть заключено в кавычки в объекте, так как это зарезервированное слово JavaScript, и« className »нельзя использовать, так как оно ссылается на свойство DOM , а не атрибут. "Согласно официальной документации jQuery
Чтобы создать элемент HTML,
$("<div/>")
или$("<div></div>")
является предпочтительным.Затем вы можете использовать либо
appendTo
,append
,before
,after
и т.д. ,. вставить новый элемент в DOM.PS: jQuery версия 1.11.x
источник
Согласно документации для 3.4 , предпочтительнее использовать атрибуты с
attr()
методом.источник
class
в кавычки, это молча провалится и может привести к безумию.Я бы порекомендовал первый вариант, где вы на самом деле строите элементы, используя jQuery. второй подход просто устанавливает свойство innerHTML элемента в строку, которая оказывается HTML, более подвержена ошибкам и менее гибка.
источник
Если
#box
пусто, ничего, но если это не так, они делают совершенно разные вещи. Первый добавит вdiv
качестве последнего дочернего узла#box
. Последний полностью заменяет содержимое#box
на один пустойdiv
, текст и все.источник
Также возможно создать элемент div следующим образом:
добавить класс
также может выполнять
append()
иappendChild()
источник