在Javascript中分配变量

在Javascript中分配变量,javascript,jquery,html,node.js,Javascript,Jquery,Html,Node.js,我将索引定义为,它位于HTML正文的顶部,因此我可以将其作为全局变量使用。 我想把$(this.val()的值赋给。 我试了好几次,但都没有弄明白。 我在后端使用Node.js,在前端使用EJS <script> $("#agency").on("change", function () { var $modal = $('#myModal'); if($(this).val() !== '0'){ &l

我将索引定义为
,它位于HTML正文的顶部,因此我可以将其作为全局变量使用。 我想把
$(this.val()
的值赋给
。 我试了好几次,但都没有弄明白。 我在后端使用Node.js,在前端使用EJS

<script>
    $("#agency").on("change", function () {
        var $modal = $('#myModal');
            if($(this).val() !== '0'){
                <% index %> = parseInt($(this).val()); ????
            }
            $modal.modal('show');
        }
    });
</script>

美元(“#代理”)。关于(“变更”,职能(){
var$modal=$(“#myModal”);
if($(this.val()!='0'){
=parseInt($(this).val())????
}
$modal.modal('show');
}
});

正如有人提到的,您需要区分在服务器上计算的内容和在浏览器上执行的内容:

公共页面可能如下所示:

<script>
    var index = <% index_calculated_on_server %>;
    $("#agency").on("change", function () {
        var $modal = $('#myModal');
            if($(this).val() !== '0'){
                index = parseInt($(this).val()); ????
            }
            $modal.modal('show');
        }
    });
</script>

var指数=;
美元(“#代理”)。关于(“变更”,职能(){
var$modal=$(“#myModal”);
if($(this.val()!='0'){
index=parseInt($(this).val())????
}
$modal.modal('show');
}
});

正如有人提到的,您需要区分在服务器上计算的内容和在浏览器上执行的内容:

公共页面可能如下所示:

<script>
    var index = <% index_calculated_on_server %>;
    $("#agency").on("change", function () {
        var $modal = $('#myModal');
            if($(this).val() !== '0'){
                index = parseInt($(this).val()); ????
            }
            $modal.modal('show');
        }
    });
</script>

var指数=;
美元(“#代理”)。关于(“变更”,职能(){
var$modal=$(“#myModal”);
if($(this.val()!='0'){
index=parseInt($(this).val())????
}
$modal.modal('show');
}
});

您的问题在于混合使用服务器端和客户端渲染。为了说明,让我们看一下您提供的片段。
<script>
    $("#agency").on("change", function () {
        var $modal = $('#myModal');
            if($(this).val() !== '0'){
                <% index %> = parseInt($(this).val()); // This is the problem line
            }
            $modal.modal('show');
        }
    });
</script>


0
您的问题在于混合使用服务器端和客户端渲染。为了说明,让我们看一下您提供的片段。
<script>
    $("#agency").on("change", function () {
        var $modal = $('#myModal');
            if($(this).val() !== '0'){
                <% index %> = parseInt($(this).val()); // This is the problem line
            }
            $modal.modal('show');
        }
    });
</script>


0
您似乎试图以一种不太有效的方式混合服务器端渲染和客户端渲染。由于脚本标记是在页面加载后执行的,因此无法正确解析呈现的EJB。相反,考虑在需要更改的地方添加包装元素,并更新客户端,而不是混合服务器端和客户端变量,因为它们不能同步更新。您的索引变量是服务器变量,而脚本则在客户端上运行。不能在客户端环境中为服务器变量赋值。检查Ajax以将数据传送到服务器。使用
window.index=parseInt($(this.val())访问它全局YeJS不是前端,这是你的大脑画面崩溃的地方。这很混乱,因为它在您面前混合在一起,但是ejs在js@ajaiJothi这可能不会达到预期的效果。据我所知,询问者希望更新一个变量,该变量将与页面上的另一个变量同步。另外,我总是很不确定。似乎你试图以一种不太有效的方式混合服务器端渲染和客户端渲染。由于脚本标记是在页面加载后执行的,因此无法正确解析呈现的EJB。相反,考虑在需要更改的地方添加包装元素,并更新客户端,而不是混合服务器端和客户端变量,因为它们不能同步更新。您的索引变量是服务器变量,而脚本则在客户端上运行。不能在客户端环境中为服务器变量赋值。检查Ajax以将数据传送到服务器。使用
window.index=parseInt($(this.val())访问它全局YeJS不是前端,这是你的大脑画面崩溃的地方。这很混乱,因为它在您面前混合在一起,但是ejs在js@ajaiJothi这可能不会达到预期的效果。据我所知,询问者希望更新一个变量,该变量将与页面上的另一个变量同步。另外,我对这件事总是很怀疑。