【问题标题】:jQuery removes slash from self-closing tagsjQuery 从自闭合标签中删除斜线
【发布时间】:2015-05-03 14:09:27
【问题描述】:

我发现当通过 .append()、.prepend() 和其他方式插入这个标签时,jQuery 似乎正在从一个自闭合 XHTML 标记中删除右斜杠,这会导致无效的 XHTML - 反过来- 导致标记错误。

以下代码,例如:

$('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 作为浏览器

【问题讨论】:

  • 我已经有一段时间没有使用 xhtml 了,但这是否是一个有效的文档类型?
  • 你使用的是哪个 jQuery 版本?
  • XHTML5 曾经被推荐过吗?它不只是默默地死去吗?编辑:Interesting.
  • 这与jQuery无关,是浏览器做的。它有什么不同?

标签: jquery xhtml


【解决方案1】:

由于 XHTML 不支持原始修改代码和这些函数:document.writeinnerHTML,jQuery 使用这些函数插入内容,因此会在浏览器中提示兼容性错误。

相反,您可以通过以下方式创建内容:

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

我的建议是将文档类型更改为 HTML5 以避免此问题,除非您确实需要 XHTML 文档类型。

参考:XHTML does not support docwrite

【讨论】:

  • 我无法使用 CreateElement,因为我想将所有输入标签附加到可在该 div 内拖动的 div 元素。我怎样才能强行把它作为自闭标签?
  • 你不能在 XHTML 上下文中。改成 HTML5 doctype 怎么样?
  • @Unknown 浏览器知道它是一个自闭合标签......允许浏览器做它想做的事情的具体问题是什么?
  • HTML5 出现同样的问题
  • @Unknown 并且您还没有说明问题的原因
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-24
  • 1970-01-01
  • 2011-05-13
  • 2011-02-03
  • 2013-10-21
相关资源
最近更新 更多