2015-03-03 52 views
1

我发现jQuery的出现通过插入.append()该标签时从自封闭XHTML标签去除结束斜杠,.prepend等方式,这导致斜线在无效的XHTML中 - 这反过来 - 导致标签损坏。jQuery的去除()自闭合标签

下面的代码,例如:

$('body').append('<input type="text" id="test" value="test" />'); 

结果如下所示:

<input id="test" value="test" type="text"> 

虽然预期输出是:

<input id="test" value="test" type="text" /> 

我使用DOCTYPE:XHTML5Chrome作为一个浏览器

+0

我没有使用XHTML在相当一段时间,但是,即使是有效的doctype? – mmgross 2015-03-03 02:35:33

+0

您正在使用哪个jQuery版本? – Raptor 2015-03-03 02:35:39

+1

XHTML5是否成为推荐?它不是静静地死去吗?编辑:[有趣](https://programmers.stackexchange.com/questions/149839/is-xhtml5-dead-or-is-it-just-an-synonym-of-html5)。 – 2015-03-03 02:36:26

回答

0

作为XHTML不支持代码&这些功能的原料改性:document.writeinnerHTML,jQuery使用这些函数来插入内容,从而兼容性错误将在浏览器中被提示。

相反,你可以创建内容:

document.createElement('div'); 
// bla bla bla 

我的建议是改变文档类型,以HTML5为避免这个问题,除非你真的需要XHTML文档类型。

参考:XHTML does not support docwrite

+0

我无法使用CreateElement,因为我想将所有输入标签附加到该div内可拖动的div元素。我该如何强制将其作为自闭标签? – Jankya 2015-03-03 02:42:33

+0

你不能在XHTML上下文中。如何改为使用HTML5文档类型? – Raptor 2015-03-03 02:43:16

+0

@未知浏览器知道它是一个自动关闭标记......允许浏览器执行它想要的操作有哪些具体问题? – charlietfl 2015-03-03 02:44:08