Этот HTML совершенно действителен. (Для XHTML вы должны использовать самозакрывающийся элемент.)
Но это не имеет значения , потому что к тому времени, когда jQuery модифицирует вещи, он взаимодействует с DOM (часть разметки почти закончена, за исключением того, что jQuery использует innerHTML
, когда он может под крышкой). Таким образом, вы не увидите результат в виде разметки, за исключением инструментов (таких как Firebug), которые будут показывать вам структуры DOM в виде HTML-строк. Если вы используете документ XHTML, возможно, какой бы инструмент вы не использовали, он не следует соглашению XHTML для целей отображения, но это просто проблема отображения, а не реальная проблема со страницей.
Думайте об этом так: разметка похожа на строковый литерал в вашем исходном коде; DOM похож на фактическую строку во время выполнения. Отладчики покажут вам содержимое строки во время выполнения, обычно используя нотацию, похожую на строковые литералы (хотя это варьируется); аналогично, такие инструменты, как Firebug, инструменты разработчика Chrome и т. д., показывают структуры DOM с использованием нотации разметки. Но это просто отображение в инструменте.