三元运算符未按预期工作

在我的代码中,我设置了一个名为languagevia的变量JSTL。我就是这样做的。


<%@ page pageEncoding="UTF-8" %>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<%@taglib prefix="c" uri= "http://java.sun.com/jsp/jstl/core" %>

<c:set var="language" value="${not empty param.language ? param.language : not empty language ? language : pageContext.request.locale}" scope="session" />

<fmt:setLocale value="${language}" />

<fmt:setBundle basename="text" />

我有一个 JQuery 代码,它将language相应地检查并显示内容。


<script >

    $(function() {

        $('#SelecttheCategory').on('change', function() {

            alert("${language}");

            val = $(this).val();


            $.get("DynamicPopProductList?categoryID=" + val, function(responseJson) {


                var $dropdown = $("#Selecttheproducts");

                $dropdown.empty();


                $.each(responseJson, function(index, item) {

                    $dropdown.append($("<option />").val(item.idproduct).text($ {

                        language

                    } == 'si' ? item.sinhalaName : item.productName));

                });


            });

        });

    }); 

</script>

如果语言是sinhala我需要显示的item.sinhalaName,如果不是,我将显示item.productName. 无论如何,这不会按预期工作。我没有得到任何东西。但是在我的 中alert,它正确显示language为si.


我怎样才能解决这个问题?


守着一只汪
浏览 124回答 1
1回答

跃然一笑

假设该${language}值输出到服务器端的源,那么您需要将其用引号括起来,以便 Javascript 语法正常工作。尝试这个:var optionText = '${language}' === 'si' ? item.sinhalaName : item.productName;$dropdown.append($("<option />", {&nbsp; value: item.idproduct,&nbsp; text: optionText});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java