我正在使用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的初学者,如果有人可以帮助我在我的页面上修复此验证错误,那将是非常好的。
答案 0 :(得分:2)
原因是你在一个内联脚本元素中仍然由XML解析器解析(理论上)。您在JavaScript字符串中的标记可能会被视为元素。
一个解决方案(最好的解决方案,您应该已经做过)就是将您的JavaScript移动到外部文件并链接到它:
<script type="text/javascript" src="my/script.js"> </script>
其他的涉及逃避或使用<![CDATA[
块,并且通常是令人不愉快的。
答案 1 :(得分:0)
验证程序错误地选取了脚本块中的HTML标记。将脚本移动到外部文件以解决此问题。
验证器在我的JavaScript中抱怨某事!
最有可能的是,您应该阅读WDG优秀的脚本部分 常见的HTML验证问题文档。