较小的运算符在javascript代码中给出错误[重复]

Posted

技术标签:

【中文标题】较小的运算符在javascript代码中给出错误[重复]【英文标题】:Smaller operator gives error in javascript code [duplicate] 【发布时间】:2013-07-04 22:00:00 【问题描述】:

我的 xhtml 文件中有一个 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>

问题在于,在 for 循环中,“

谢谢

编辑:我现在尝试了这个,但仍然是一个错误。您是否看到语法错误?

<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++) 
                                                     ^

【问题讨论】:

***.com/questions/4338538/… 【参考方案1】:

尝试使用 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>

【讨论】:

这似乎工作,现在没有错误,谢谢 也能正常运行,谢谢【参考方案2】:

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

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

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

【讨论】:

谢谢,我试过了,但这次它说: myaccounts.xhtml:5:52 Expected ) but found ; for (var i = 0; i < el.length; i++) ^ myaccounts.xhtml:5:57 预期;但找到 ) for (var i = 0; i < el.length; i++) ^

以上是关于较小的运算符在javascript代码中给出错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在R中将较大的Dataframe子化为较小的Dataframe?

在较小的设备中覆盖填充 React Material UI

如何用 JavaScript 编写你的第一个单元测试

navigator.share 打开一个较小的菜单

C 中大型动态数组分配 (malloc) 期间的内存错误。它适用于较小的数组

为啥将一行代码(可以做很多事情)分成许多较小的行运行 *so* 慢得多