Я узнал, что jQuery не всегда создает правильный DOM из строки HTML. Вот небольшой пример кода:jQuery строит неправильную DOM из строки HTML
var x = "<div><p><ul><li>1</li></ul></p></div>";
console.log('x = ' + x);
console.log('jQuery(x) = ' + jQuery(x).html());
var y = "<div><div><ul><li>1</li></ul></div></div>";
console.log('y = ' + y);
console.log('jQuery(y) = ' + jQuery(y).html());
Вот выход я получаю это работает с JQuery 1.7.1:
x = <div><p><ul><li>1</li></ul></p></div>
jQuery(x) = <p></p><ul><li>1</li></ul><p></p>
y = <div><div><ul><li>1</li></ul></div></div>
jQuery(y) = <div><ul><li>1</li></ul></div>
Как вы можете видеть, второй пример создает правильный DOM, первый пример нет. Единственная разница - это тег <p>
вместо <div>
. Это ошибка или функция jQuery?
Вы указываете неверный html. Это неверный вход, а не вывод. Html, который вы видите в результате, является автоматически скорректированным html. – Nope
@downvoter: Серьезно? Это хороший вопрос. Продвижение для противодействия. –