我相信大多数人都知道以下内容:
var str = '<img src="path/to/some/image" />'
$('#selector').html(str);
这将输出以下 HTML:
<div id="selector">
<img src="path/to/some/image">
</div>
它删除了 img 标记末尾的自闭合“斜线”,因为 jQuery 呈现的是真正的 HTML,而不是 XHTML。
我的双手被束缚在使用针对 XHTML 进行验证的 CMS 上,因此任何复制到所见即所得系统中或在系统中创建的标记都必须在自闭合标记的末尾包含“斜线”。
我的困境是我正在使用Bootstrap Form Builder来创建一些快速而肮脏的表单。此应用程序使用 jQuery .html() 创建呈现的 HTML。所以所有的 < input > 结束标签斜线都被剥离了。当我将渲染的代码复制并粘贴到我的 CMS 中时,它不会让我发布它。
任何人都有一个聪明的方法来防止 .html() 删除“斜线”?或者至少无需手动将斜线放回原处?