文档类型不允许元素“ul”

时间:2012-01-11 21:53:53

标签: javascript html css

我正在使用XHTML 1.0严格文档类型。 我的页面末尾有一些JavaScript:

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

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

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

上面提到的元素是在不允许的上下文中找到的。这可能意味着你有错误的嵌套元素 -   例如“body”部分中的“style”元素而不是inside   “头部” - 或两个重叠的元素(不允许)。

     

此错误的一个常见原因是在HTML文档中使用XHTML语法。由于HTML的隐式封闭元素的规则,这个   错误可以创建级联效果。例如,使用XHTML   “自我关闭”标签为“元”和“链接”在“头”部分   HTML文档可能会导致解析器推断出“头部”的结束   部分和“身体”部分的开头(其中“链接”和   “meta”是不允许的;因此报告的错误)。

我是JavaScript的初学者,如果有人可以帮助我在我的页面上修复此验证错误,那将是非常好的。

2 个答案:

答案 0 :(得分:2)

原因是你在一个内联脚本元素中仍然由XML解析器解析(理论上)。您在JavaScript字符串中的标记可能会被视为元素。

一个解决方案(最好的解决方案,您应该已经做过)就是将您的JavaScript移动到外部文件并链接到它:

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

其他的涉及逃避或使用<![CDATA[块,并且通常是令人不愉快的。

答案 1 :(得分:0)

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

  

验证器在我的JavaScript中抱怨某事!

     

最有可能的是,您应该阅读WDG优秀的脚本部分   常见的HTML验证问题文档。

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