我试图在以下doctype中显示/隐藏内容:!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
这是我的javascript:
<script type="text/javascript"> function question(clicked) {
var q = document.getElementsByTagName("div");
for(var x=0; x<q.length; x++) {
title = q[x].getAttribute("title");
if (title == 'q') {
if (q[x].id == clicked) {
if (q[x].style.display == 'block') {
q[x].style.display = 'none';
}
else {
q[x].style.display = 'block';
}
}else {
q[x].style.display = 'none';
}
}
} } </script>在验证时,它返回以下错误: 1.错误第9行,第30列:字符";“属性规范列表中不允许
for(var x=0; x<q.length; x++) {对于(var x=0;x
(var x=0;x
我现在正在学习Javascript,并且已经尝试过Google &修复这个问题的方法已经有30多种了。有谁可以帮我?如果我需要尝试一个不同的脚本来显示/隐藏,在这一点上,我会放弃我拥有的,并去做它。
提前感谢!
发布于 2011-11-05 18:32:22
如果您将javascript函数移动到外部文件中,然后从页面头部分链接到该文件,则验证器不必担心它们。
例如:
<script src="functions.js" type="text/javascript"></script>这还允许您在不重复代码的情况下跨多个页面重用函数。
另一个好处是用户的浏览器将在第一次遇到js文件时缓存它,因此在随后的页面上,javascript函数文件将从缓存中检索,而不是与页面一起下载。
发布于 2011-11-05 18:16:46
使用节。<对于解析器有一个特殊的含义。
<script>
//<![CDATA[
...JavaScript code..
//]]></script>验证器检测到一个<,并尝试解析一个新的标记<q.length。当发现分号时,解析器不知道如何处理它,并抛出一个错误。通过使用CDATA,您可以有效地说:“本节中的任何内容都应该解释为纯文本,而不是被解析。
使用以下设置将代码粘贴到http://validator.w3.org/check (通过直接输入进行验证):“验证文档片段,XHTML1.0”。
https://stackoverflow.com/questions/8022234
复制相似问题