JQuery clone (). Html () добавляет отдельный конечный тег в элемент xhtml

Вызов clone().html() в элементе XHTML, кажется, реконструирует элемент и добавляет отдельный закрывающий тег. Есть ли способ этого избежать?

var clone = $("#test").clone().html();
$("#test").text(clone);
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id = "test">
  <ix:tuple name = "se-ar-base:UttalandenTuple" tupleID = "UttalandenTuple1" />
</span>
<span id = "test2"></span>

Это делает не jQuery, а средство визуализации браузера. Если вы удалите код jQuery и изучите DOM, вы увидите, что закрывающий элемент </ix:tuple> был добавлен за вас. Это связано с тем, что это недопустимый HTML (или даже XHTML, который сейчас очень устарел), и браузер пытается исправить вашу ошибку за вас. Если вы хотите избежать этого, сначала закодируйте строку - хотя, по-видимому, она предназначена для использования в серверной библиотеке шаблонов, которую вы по ошибке отправляете клиенту.

Rory McCrossan 02.05.2018 19:39

Если вы действительно хотите сохранить самозакрывающийся тег, вы можете быть действительно грязным и добавить .replace(/>\s*</ix:tuple>/,'/>') в конец вашего .clone().html().

James 02.05.2018 19:51

Хорошо, я понимаю, хм, тогда нужно просмотреть код. Спасибо!

Kevin Lindmark 02.05.2018 20:06
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
3
37
0

Другие вопросы по теме