【问题标题】:How to use javascript string as variable name in django html template?如何在 django html 模板中使用 javascript 字符串作为变量名?
【发布时间】:2020-06-10 00:38:02
【问题描述】:

我有一个 django 视图,可以将多个值传递给我的 html 页面。 基于一些客户端进程,我想处理其中一个值。考虑这个例子:

views.py

return render(request,'output.html',{
    'k1'=x,
    'k2'=y,
    'k3'=z,
}

输出.html:

<script>
    var temp;
    var i;
for (i=1;i<=3;i++){
        temp="k"+i.toString();
    }

现在我想访问名称存储在 temp 中的变量中的值来执行一些 jquery 操作。所以我需要存储在 javascript 变量中的值。

注意:给定的只是一个小例子,我实际上是在使用大约 60 次迭代的循环,即 k1 到 k60,所以硬编码 if else 不是一个可行的选择。

【问题讨论】:

  • 任何时候你想使用一堆变量来实现类似的目的,你应该使用一个数据结构来代替 - 一个列表或一个字典(即数组或对象,在 JavaScriptLand 中),并通过 JSON 传递。 &lt;script&gt;const data = {{ data | jsonify }}; &lt;/script&gt;
  • 使用 var temp = {{k1}} 创建隐藏的输入字段或赋值
  • 如果你能举一个小例子来说明我该如何处理这种情况,那将非常有帮助。
  • 你应该把它分成一个ajax调用,你可以从前端请求中获得

标签: javascript python jquery django jinja2


【解决方案1】:

将 JSON 用于您要在 HTML 模板中使用的数据。然后你就可以像 JS 一样使用它了。

<script>var data = {{ data | jsonify }}; </script>

【讨论】:

  • 不能使用它,因为变量名中的数字在同一个循环中也有其他特定的功能。
猜你喜欢
  • 2012-07-22
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 2012-09-30
  • 2016-04-22
  • 2013-06-26
  • 1970-01-01
相关资源
最近更新 更多