首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django:列表传模板,传JS

问django:列表传模板,传JS
EN

Stack Overflow用户
提问于 2018-01-04 01:08:29
回答 2查看 120关注 0票数 0

在Views.py中,我创建了一个列表变量-

代码语言:javascript
复制
mortgages_counter.append(MonthlyPaymentAmount)

传入.html模板的方式为:

代码语言:javascript
复制
<input id ='mortgages_counter' name='mortgages_counter' type='hidden' value='{{mortgages_counter}}'>

在JQuery中(单独的文件,我必须检查这个列表的每个元素是否都被使用了)。值以如下形式传输到.js文件:

代码语言:javascript
复制
var mortgages_counter = $('#mortgages_counter').val();

但根据控制台,它被作为字符串传输到类似Jquery的'1234','125‘,因为某些原因,它的长度是1,还检查了对索引的访问-’和1-1等,如何操作这个列表作为列表,而不是字符串?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-04 01:37:45

虽然@JulienGregoire已经回答了,但我要提到的是另一种方法。您可以遍历mortgages_counter并将每个项目添加到input标记。然后在Jquery中,使用.each()遍历每个对象并进行检查。

在您的模板中,执行如下操作。

代码语言:javascript
复制
{% for mortgages in mortgages_counter %}
    <input id='mortgages_counter' name='mortgages_counter' type='hidden' value='{{ mortgages }}'>
{% endfor %}

在你的Jquery中,像这样使用.each()。

代码语言:javascript
复制
$("#mortgages_counter").each(function () {
    var mortgage = $(this).val();
    /* do rest of the things and/or comparisons */
});
票数 1
EN

Stack Overflow用户

发布于 2018-01-04 01:20:44

您应该将值作为字符串,这可以通过使用join筛选器来实现。使用您知道不会在列表的值中使用的分隔符。例如,如下所示:

代码语言:javascript
复制
<input id ='mortgages_counter' name='mortgages_counter' type='hidden' value='{{mortgages_counter||join:"|" }}'>

请参阅:https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#join

然后使用相同的分隔符拆分javascript。它将字符串转换为数组:

代码语言:javascript
复制
var mortgages_counter = $('#mortgages_counter').val().split('|');

https://www.w3schools.com/jsref/jsref_split.asp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48081968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档