2013-07-07 41 views
2

我在我的xhtml文件中有一个javascript代码。那就是:较小的运算符在javascript代码中给出错误

<h:head> 
    <h:outputStylesheet library="css" name="styles.css" /> 
    <script> 
      function dataTableSelectOneRadio(radio) { 
       var id = radio.name.substring(radio.name.lastIndexOf(':')); 
       var el = radio.form.elements; 
       for (var i = 0; i < el.length; i++) { 
        if (el[i].name.substring(el[i].name.lastIndexOf(':')) == id) { 
         el[i].checked = false; 
        } 
       } 
       radio.checked = true; 
      } 
     </script> 
</h:head> 

问题IST,里面的for循环它给出了“<”经营者说,错误“元素的内容必须包含合式的字符数据或标记。”我认为它认为“<”的,即“身体一个HTML元素,HTML等,但我不知道我怎样才能解决这个

感谢

编辑:?现在我试过,但仍然是一个错误。是否有语法错误,你看到

<script> 
      function dataTableSelectOneRadio(radio) { 
       var id = radio.name.substring(radio.name.lastIndexOf(':')); 
       var el = radio.form.elements; 
       for (var i = 0; i &lt; el.length; i++) { 
        if (el[i].name.substring(el[i].name.lastIndexOf(':')) == id) { 
         el[i].checked = false; 
        } 
       } 
       radio.checked = true; 
      } 
     </script> 

错误说:

myaccounts.xhtml:5:52 Expected) but found ; 
       for (var i = 0; i &lt; el.length; i++) { 
               ^

myaccounts.xhtml:5:57 Expected ; but found) 
       for (var i = 0; i &lt; el.length; i++) { 
                ^
+2

http://stackoverflow.com/questions/4338538/javax-servlet-servletexception-error-parsing-page-xhtml-the-content-of-elemen出现工作 – Andreas

回答

3

尝试使用CDATA的XML解析器不读的JavaScript内容,你的代码会是这样的:

<h:head> 
    <h:outputStylesheet library="css" name="styles.css" /> 
    <script> 
     // <![CDATA[ 
     function dataTableSelectOneRadio(radio) { 
      var id = radio.name.substring(radio.name.lastIndexOf(':')); 
      var el = radio.form.elements; 
      for (var i = 0; i < el.length; i++) { 
       if (el[i].name.substring(el[i].name.lastIndexOf(':')) == id) { 
        el[i].checked = false; 
       } 
      } 
      radio.checked = true; 
     } 
     // ]]> 
    </script> 
</h:head> 
+0

,因为没有错误,现在感谢 – yrazlik

+0

还运行正确地感谢你 – yrazlik

1

Facelets的是一种基于XML的视图技术。字符<,>&是XML中的特殊字符。它们需要分别替换为&lt;,&gt;&amp;

for (var i = 0; i &lt; el.length; i++) { 
// your code 
} 

最好将整个JS代码包装在<![CDATA[ block中。

+0

谢谢,我试过了,但这一次它说:myaccounts.xhtml:5:52预期)但找到; for(var i = 0; i < el.length; i ++){ ^ myaccounts.xhtml:5:57预期;但发现) (var i = 0; i < el.length; i ++){ ^ – yrazlik