JavaScript去掉<img />标签中的尾部斜杠

5
我有以下的JS代码:
validateConfigName.html('<img src="/rta/images/check-24.png" />');

但是当在Firefox中执行时,我看到生成的代码如下:

<img src="/rta/images/check-24.png">

为什么?

4
@Thilo - 不问为什么也行,但如果我正在招聘程序员,我想要那个会问为什么的人。我希望更多的人真正关心事情为什么是这样的。 - Nick Craver
2
@Thilo - Nick说得对,确实不会有影响。我只是想知道为什么会出现这种差异。我已经知道这不是什么大问题,但是想知道是否有人能够深入解答这个问题。如果不能问一个简单的问题“为什么”,那么SO还有什么用呢? - ashurexm
4个回答

6
在HTML中,<img>标签应该是<img>,在XHTML中它将是<img />...所以这取决于您的页面使用的DOCTYPE。
来自HTML 4.0规范的<img>(链接)
起始标记:必需,结束标记:禁止 在XHTML中,元素必须被关闭:(链接)
“良好格式”是[XML]引入的一个新概念。基本上这意味着所有元素都必须要么有闭合标签,要么以一种特殊的形式编写(如下所述),而且所有元素必须正确嵌套。

我的文档类型看起来像这样:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - ashurexm
@manyxcxi - 你是用什么方式查看代码的,firebug,view selection source还是其他方式? - Nick Craver
我正在使用Web开发者工具栏FF插件进行查看。我想我从来没有真正停下来思考过这一点,但是当我查看生成的代码时,我并没有完全查看到代码本身。 - ashurexm
1
他的 DOCTYPE 并不重要。他没有将页面作为 XHTML 提供。 - Eli Grey

2
生成的代码,比如Firebug或其他类似工具?Firebug操作的是DOM而不是实际源代码,这意味着它可能看起来与您输入的代码并不完全相同。但这并不应该有太大影响。

使用Firefox浏览器的Web开发者工具栏插件,我执行了"查看生成源代码"。 - ashurexm
没错,这与Firebug是一样的。只是因为它重新生成了你的源代码而不是查看实际的代码。没有什么可担心的。 - hatkirby

1

这是因为您没有提供XHTML,即使您的DOCTYPE是XHTML DOCTYPE。除非您使用Content-Type HTTP头将其作为application/xhtml+xmlapplication/xmltext/xml提供,否则XHTML文档不会被视为XHTML。


我应该在apache/.htaccess级别还是通过PHP设置它? - ashurexm

0

这是浏览器根据使用的文档类型呈现您的HTML代码的方式。

不过,无需担心。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接