Javascript验证w3c

1 html javascript validation doctype

我正在尝试显示/隐藏以下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>
Run Code Online (Sandbox Code Playgroud)

在验证时,它返回以下错误:1.错误第9行,第30列:字符";" 不允许在属性规范列表中

        for(var x=0; x<q.length; x++) {
Run Code Online (Sandbox Code Playgroud)
  1. 错误第9行,第30列:元素"q.length"未定义

        for(var x=0; x<q.length; x++) {
    
    Run Code Online (Sandbox Code Playgroud)
  2. 错误行25,第9列:省略了"q.length"的结束标记,但指定了OMITTAG NO

  3. 信息第9行,第21列:开始标记在这里

        for(var x=0; x<q.length; x++) {
    
    Run Code Online (Sandbox Code Playgroud)

我现在正在学习Javascript,并且已经尝试了Google并且现在已经解决了大约3种方法.谁能帮我?如果我需要尝试不同的脚本来显示/隐藏,此时,我会废弃我所拥有的并执行此操作.

提前致谢!

Rob*_*b W 6

使用CDATA部分.该<对解析器有特殊的意义.

<script>
//<![CDATA[
 ...JavaScript code..
//]]></script>
Run Code Online (Sandbox Code Playgroud)

验证程序检测到a <,并尝试解析新标记<q.length.当分号被发现时,解析器不知道如何处理它,并抛出错误.通过使用CDATA,您可以有效地说"本节中的任何内容都应该被解释为纯文本,而不是被解析.

使用以下设置将代码粘贴到http://validator.w3.org/check(通过直接输入验证):"验证文档片段,XHTML 1.0".