Ответ 1
Хотя это может сработать, если вы не используете закрывающий тег (или, по крайней мере, самостоятельно закрываете тег), вы должны добавить закрывающий тег (self- close) (как уже упоминалось, для межплатформенной совместимости):
Чтобы обеспечить кросс-платформенную совместимость, фрагмент должен быть хорошо сформирован. Теги, которые могут содержать другие элементы, должны быть сопряжены с закрывающим тегом:
$('<a href="http://jquery.com"></a>');
В качестве альтернативы, jQuery позволяет синтаксис XML-подобных тегов (с пробелом или без него перед косой чертой):
$('<a/>');
Теги, которые не могут содержать элементы, могут быть быстро закрыты или нет:
$('<img />'); $('<input>');
Вот как jQuery создает элементы:
Если HTML более сложный, чем один тег без атрибутов, как и в приведенном выше примере, фактическое создание элементов обрабатывается механизмом браузера
innerHTML
. В большинстве случаев jQuery создает новый элемент и устанавливает свойствоinnerHTML
элемента в фрагмент HTML, который был передан. Когда параметр имеет один тег, например$('<img />')
или$('<a></a>')
, jQuery создает элемент используя встроенную функцию JavaScriptcreateElement()
.
Btw. вы также можете передать данные в качестве второго параметра:
$('<div />', {'class': 'error', text: 'Error-Homie!'})