动态生成的html不包含/>,但是>代替

时间:2013-06-03 14:16:43

标签: jquery dynamic xhtml

我使用jquery生成html内容,但它不会生成/>。它生成>代替。

$("#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

Example in jsfiddle

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

有什么方法可以生成/&gt; ?

如果没有,如果我没有它,这是一个大问题吗?

1 个答案:

答案 0 :(得分: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的服务器端。