0

我正在使用 jquery 生成 html-content,但它不会生成 />。它会生成 > 。

$("#myDiv").append('<img src="nothing.jpg" alt="image" />');

this generates:

<img src="nothing.jpg" alt="image">

as you can see it has no />, but > instead

jsfiddle 中的示例

因此,我无法通过 XHTML 验证器获得它。

它有什么方法可以生成 /> 吗?

如果没有,如果我没有它,这有什么大不了的吗?

4

1 回答 1

1

jQuery 不会生成 HTML。它将修改 DOM。

然后,您可以使用innerHTML(可能通过jQuery(...).html())或 DOM 检查器将 DOM 序列化为 HTML。

如果您处于 HTML 模式(即文档被用作text/html),那么您将获得 HTML。

如果您将文档作为 XHTML(即使用Content-Type: application/xhtml+xml)提供,浏览器可能会为您提供 XHTML,但它们不提供在 HTML 模式下生成 XHTML 的方法。

如果没有,如果我没有它,这有什么大不了的吗?

这是一笔大买卖。标记的格式不正确,XML 解析器将抛出错误并停止。

我建议使用 HTML 而不是 XHTML。

如果您想以 XML 解析器为目标,则生成 HTML 并将其传递给可以解析 HTML 并输出 XHTML 的服务器端。

于 2013-06-03T14:19:12.467 回答