2013-07-07 62 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