没有分号

时间:2009-09-23 11:38:42

标签: html

我一直在web应用程序中使用prototype.js。我在选择一些单选按钮时动态填充一些Div。在填充Div中的内容之前,我使用原型的更新方法清除以前的内容 -

$('item').update('');

在IE中,这会自动换行,但在Firefox 3.5中则不行。因此,为了以与IE相同的方式工作,我将代码更改为 -

$('item').update('&nbsp');

现在,这对我有用。但是,通常“& nbsp”与分号($ nbsp;)一起使用。我想知道,如果这段代码可能出现故障。 例如,是否有机会显示& nbsp而不是空格?但是有些浏览器可能足够聪明,可以通过程序员检测编码错误并自动更正错误。

4 个答案:

答案 0 :(得分:13)

结尾分号可以省略,但绝对不推荐。见note in the HTML 4 specification regarding character references

  

在SGML中,可以消除最终的“;”在某些情况下(例如,在换行符处或在标签之前),在字符引用之后。在其他情况下,它可能不会被消除(例如,在一个单词的中间)。我们强烈建议使用“;”在所有情况下,以避免需要此字符的用户代理出现问题。

答案 1 :(得分:8)

从不依赖浏览器自动更正或“推荐”行为。

如果你的代码错了,那么(a)它是错的,(b)浏览器可以自由地与它做不一致的事情。

答案 2 :(得分:0)

我同意,Dodgy标记和JavaScript错误是调试您将来遇到的任何问题的一个灾难,因为您无法消除狡猾的标记导致浏览器错误地解释代码。

答案 3 :(得分:0)

不确定这是否会有所帮助(或更改任何内容),但正确的语法实际上没有单引号:

$('element').update();