2012-04-16 70 views
1

我使用下面的JavaScript:

.queue(function() { 
      $('#num').html('10'); 
      element 
       .html('First line<br /><span id="small">Small text<br />Small text again<br />small text again here</span>') 
       .dequeue(); 
     }) 

当我通过W3C的验证运行它,它说:“文档类型不允许在此元素BR /跨度”。

有没有另外一种方法来做到这一点来验证它?

谢谢!

+0

您可以使用document.createElement(...)并添加创建的元素(appendChild) – 2012-04-16 15:10:42

+0

这是否工作?对不起,我是一个JS初学者! – Sarah 2012-04-16 15:15:04

回答

-1

使用pre而不是多个span的和br的:

'<pre>First line 
Small text 
Small text again 
small text again here</pre>' 

上stackoverflow.com下面的代码工作使用JavaScript控制台,并验证使用W3C markup checker

$("body").queue(function() { $(this).html("<pre>hi there</pre>") }).dequeue(); 

哪会最低限度地产生:

<!doctype html> 
<html> 
<head><title></title></head> 
<body> 
<pre>hi there</pre> 
</body> 
</html> 
+0

pre元素也不允许在那里。 – Quentin 2012-09-10 19:37:58

+0

@Quentin在W3C验证器或jQuery? – 2012-09-10 19:55:23

+0

在'

1

除非你使用XHTML,否则你不应该得到这个错误(除非你先得到其他几个错误),在这种情况下,你必须跳过“假装你的XHTML是HTML”的许多环节。

在这个特定的情况下,这是Embedded Style Sheets and Scripts的指导原则。

简而言之,您应该将您的JS移动到外部文件或将其包装在CDATA标记中。

我建议切换到HTML代替(除非您实际上在生产链中使用XML工具,而大多数人并不是这样)。