if语句中的JQuery AND OR运算符

时间:2017-07-13 11:12:16

标签: javascript jquery thymeleaf

我使用 thymeleaf 和Spring Boot来解析实体。

我正在尝试将boolean字段值更改为String,例如“是”或“否”,但是看起来很简单,我收到以下错误:

  

12:54:30.046 [XNIO-2 task-17] ERROR o.t.templateparser.ErrorHandler -   [THYMELEAF] [XNIO-2 task-17]解析期间出现致命错误   org.xml.sax.SAXParseException:实体名称必须立即执行   '&'之后在实体参考中。

     

异常解析文档:template =“scenariosList”,第401行 -   第21栏

这是我在javascript中的最后一次尝试:

var modificat = $("#modificatEscenari").val();
var calculat = $("#calculatEscenari").val();

if (calculat) {
    $("#calculat").val("Sí");
} else {
    $("#calculat").val("No");
    $("#calculPendent").val("Sí");
}

if (modificat) {
    $("#calculPendent").val("Sí");
}

if (!modificat && calculat) {
    $('#calculPendent').val("No");
}

任何人都可以告诉我这段代码中有什么问题if (!modificat && calculat) {...我已经在if语句中阅读了运算符的使用情况,这对我来说很好。

修改

它像

一样包裹着
<script>
    $(document).ready( function () {
        ....
        doing my stuff and the piece of code that trigger the exception
</script>

谢谢。

2 个答案:

答案 0 :(得分:2)

该例外表明您已将JavaScript代码嵌入到XML文档中。很自然地,&&失败了,因为&表示编号或命名字符实体的开头(如&nbsp;&#1234;)。

可能的解决方案:

  1. 不要在JavaScript中嵌入JavaScript代码。使用您从XML引用的单独JavaScript文件。 (如果我是你,这就是我要做的事。)

  2. CDATA部分标记。 This question's answers谈论如何做到这一点,例如this one说它应该是:

    <script xmlns="http://www.w3.org/1999/xhtml"><![CDATA[
    // Your code here
    ]]></script>
    
  3. 费力地确保JavaScript代码的文本是有效的XML文本,这将是A)痛苦,B)维护噩梦。但是,例如,&&运算符必须写为&amp;&amp;

答案 1 :(得分:-1)

相关:The entity name must immediately follow the '&' in the entity reference

总结:&amp; character是Thymeleaf中的XML Parser使用的特殊字符。 使用&amp;作为&amp;而不是角色。

你的行看起来像这样:

if(!modificat &amp;&amp; calculat){