【发布时间】:2016-12-10 15:00:29
【问题描述】:
我在我的模板中使用 jinja 和 javascript 创建了几行 100 个框,其中一些框是一种颜色,另一些是另一种颜色,具体取决于数据行中的数字。例如,如果我的电子表格中的一行包含以下内容:
year men women
1988 60 40
我页面上的那一行是年份,然后是 60 个绿色框(# of men)和 40 个黄色框(# of men)。我目前正在使用 jinja 循环执行此操作,但它只会吐出一排不同颜色的框。
{% for row in years %}
<script>
var htmlElements = "";
var container = document.getElementById("boxes");
for (var i = 0; i < {{ row.men }}; i++) {
htmlElements += '<div class="men"></div>';
}
for (var i = 0; i < {{ row.women }}; i++) {
htmlElements += '<div class="women"></div>';
}
container.innerHTML = htmlElements;
</script>
<div class="row box-row">
<div class="two columns">
<p id="{{ row.id }}" class="year-text">{{ row.year }}</p>
</div>
<div id="boxes" class="ten columns"></div>
</div>
<div class="row">
<div class="six columns offset-by-five">
<a href="#" class="scrollToTop">Jump To Top</a>
</div>
</div>
{% endfor %}
此代码在页面上生成所有年份,但仅生成不同颜色框的第一行。我已经检查以确保我的数据的标题行与上面脚本标记中的内容相匹配。我不确定我是否在脚本中正确使用了 jinja 变量。任何帮助表示赞赏!
【问题讨论】:
-
为什么你没有在 Jinja HTML 标签中做所有的事情? js有必要吗?
-
我不知道如何将 js 代码翻译成 Jinja 并满足相同的要求(特定数量的 div)。如果可行的话,我宁愿在 Jinja 做这一切。知道怎么做吗?
标签: javascript html jinja2 data-visualization templating