文档类型不允许元素“”;ul”;在这里

Document type does not allow element "ul" here

本文关键字:在这里 ul 类型 不允许 元素 文档      更新时间:2023-09-26

我使用的是XHTML 1.0 Strict Document类型。我在页面末尾有一些JavaScript:

$.each(x, function(k, v){
    txt += '<li>';
    txt += '<strong>' + v.description     + '</strong>: $' + v.postage;
    txt += '</li>';

当我在W3.org上验证我的文档时,它会给我以下错误:

txt += '<ul><li>';
✉

在不允许使用的上下文中找到了上面命名的元素。这可能意味着您嵌套的元素不正确--例如"body"部分中的"style"元素,而不是内部"头"——或者两个元素重叠(这是不允许的)。

导致此错误的一个常见原因是在HTML文档中使用XHTML语法。由于HTML的隐式封闭元素规则错误会产生级联效应。例如,使用XHTML的"head"部分中的"meta"answers"link"的"self-closed"标记HTML文档可能会导致解析器推断"头"的末尾部分和"正文"部分的开头(其中"链接"和不允许使用"meta";因此报告的错误)。

我是JavaScript的初学者,如果有人能帮助我修复页面上的这个验证错误,那将是一件非常好的事情。

原因是您所在的内联脚本元素仍由XML解析器解析(理论上)。JavaScript字符串中的标记可能被算作元素。

一个解决方案(最好的解决方案,你应该已经在做了)是简单地将你的JavaScript移动到一个外部文件中并链接到它:

<script type="text/javascript" src="my/script.js"> </script>

其他一些涉及到转义或使用<![CDATA[块,并且通常是令人不快的。

验证器错误地提取了脚本块中的HTML标记。将脚本移动到外部文件以解决此问题。

验证器抱怨我的JavaScript中有什么!

很可能,您应该阅读WDG优秀的常见HTML验证问题文档。

请参阅:http://validator.w3.org/docs/help.html#faq-javascript