在使用
Jquery html()创建自包含元素时,会发生以下问题:
$('#someId').html('<li><input type="checkBox" /></li>')
会创造
<li><input type="checkBox"></li>
它似乎是从html()函数中使用的innerHtml的一个问题.
我已经看到无处不在,找到了一个解决方案,但是页面不再可用了,如下所示:http://dev.jquery.it/ticket/3378
有谁知道如何解决这个问题?
解决方法
要澄清,这是有效的HTML:
<input type="checkBox">
这是有效的XML(包括XHTML):
<input type="checkBox"/>
但它是无效的HTML.话虽如此,大多数浏览器可能会接受它(但如果这样对你来说意味着什么,文档将无法验证).
html()使用innerHTML.在IE和可能的其他浏览器中,这有问题,因为XHTML仍然被建模为HTML DOM.见Internal IE-HTML DOM still isn’t XHTML compliant.
基本上,使用XHTML的理由很少.这是一个跨浏览器的恶梦.有关为什么要看到XHTML – Is writing self closing tags for elements not traditionally empty bad practise?的详细概要,特别是第一个答案.