元素类型"myelement"必须后跟属性规范,">"或"/>

Sam*_*hat 2 html javascript jsf

我的脚本函数是在XHTML页面上的JSF2表单中定义的,代码的以下部分会导致问题:

<script type="text/javascript">
  function myFunction(){
   var checkboxes = document.getElementsByName('mycheckboxes');
   if(checkboxes.length > 0){
     for (var i=0; i<checkboxes.length; i++){
      var checkbox = checkboxes[i];
     }
    }
  }
</script>
Run Code Online (Sandbox Code Playgroud)

尝试访问FireFox 8中的页面时,它会打印异常:

元素类型"checkboxes.length"必须后跟属性规范,">"或"/>"

这个错误是什么意思?

另一个问题是:脚本是在呈现页面之前执行的吗?因为我的复选框在页面的渲染阶段(使用JSF <ui:repeat>)加载到页面中,所以我的猜测是,当变量复选框不为空时,我必须创建条件来执行代码,我是对的吗?

Que*_*tin 6

看起来您正在使用XHTML并在页面中嵌入脚本.

XML没有内在的CDATA部分,因此<即使在脚本元素内也意味着"标记的开始".

如果您使用的是真正的XHTML,那么您可以将其表示为&lt;,但是您无法将文档作为text/html.

相反,您可以使用规范中描述的显式CDATA部分包装脚本内容,同时还要注意遵循相关的text/html兼容性指南.

你可能最好将脚本保存在外部文件中并加载它<script src="..."></script>.

就此而言,您可能最好使用HTML而不是编写XHTML,然后跳过箍,使其在期望HTML的浏览器中工作.