【发布时间】:2017-03-17 06:44:35
【问题描述】:
我已将索引定义为<%var index = 0;%>,它位于 HTML 正文的顶部,因此我可以将其用作全局变量。
我想将$(this).val() 的值分配给<% index %>。
我已经尝试了多次,但无法弄清楚。
我在后端使用 Node.js,在前端使用 EJS。
<script>
$("#agency").on("change", function () {
var $modal = $('#myModal');
if($(this).val() !== '0'){
<% index %> = parseInt($(this).val()); ????
}
$modal.modal('show');
}
});
</script>
【问题讨论】:
-
您似乎正在尝试以一种不太可行的方式混合服务器端渲染和客户端渲染。由于脚本标签是在页面加载后执行的,因此无法正确解析呈现的 EJS。相反,请考虑围绕您需要更改的内容添加一个包装器元素,并更新该客户端,而不是混合服务器端和客户端变量,因为它们将无法同步更新。
-
您的索引变量是服务器变量,而您的脚本在客户端上运行。您不能在客户端环境中将某些内容分配给服务器变量。查看 Ajax 以将数据传送到服务器。
-
使用
window.index=parseInt($(this).val());全局访问 -
ejs 不是前端,这就是你的思维方式崩溃的地方。这很混乱,因为它在你面前混合在一起,但是ejs在js之前渲染得很好
-
@ajaiJothi 这可能不会完全符合预期。据我所知,提问者希望更新一个变量,该变量将与页面上方的另一个变量同步。另外,我对touching globals/window 总是很不确定。
标签: javascript jquery html node.js