gpt4 book ai didi

javascript - 在 html 和 javascript 中迭代循环仅执行一次 - 应该在循环中每次执行

转载 作者:行者123 更新时间:2023-12-02 18:46:47 25 4
gpt4 key购买 nike

我正在尝试呈现一个显示评论数量(1 条评论或 xxx 条评论)的模板。我通过 jinja2 迭代 GAE 中的实体实例对象,但它仅在第一个循环中执行脚本,而不是在之后的每个循环中执行脚本。我的代码有什么问题吗?

   <table>
{% for each in courses_taught %}
<tr>
<td id="num_reviews">
<script type='text/javascript'>
var html_output = "";
var review_count ={{each.num_reviews}};

if (review_count ==1) {
html_output += "<a href='../course/{{each.key()}}'>1 review</a>";
}

else if (review_count > 1) {
html_output += "<a href='../detail/course/{{each.key()}}'>" + num_reviews + " reviews</a>";
}

else {
html_output +="<a id='trailblazer' href='../../../review/writeReview/{{each.key()}}'>Be the trailblazer</a>";
}

var reviewCount = document.getElementById("num_reviews");
reviewCount.innerHTML = html_output;

</script>
</td>

</tr>

{% endfor %}

最佳答案

无需任何额外 JavaScript 的 Jinja 解决方案:

{% for each in courses_taught %}
{{ each.num_reviews }}
review{% if each.num_reviews > 1 %}s{% endif %}
{% endfor %}

如果你想使用 javascript(为什么?):

{% for each in courses_taught %}
<tr>
<td id="num_reviews-{{each.unique_id}}">
<script type='text/javascript'>
var html_output = "";
var review_count = {{each.num_reviews}};

if (review_count == 1) {
html_output += "<a href='../course/{{each.key()}}'>1 review</a>";
}

else if (review_count > 1) {
html_output += "<a href='../detail/course/{{each.key()}}'>" + num_reviews + " reviews</a>";
}

else {
html_output +="<a id='trailblazer' href='../../../review/writeReview/{{each.key()}}'>Be the trailblazer</a>";
}

var reviewCount = document.getElementById("num_reviews-{{each.unique_id}");
reviewCount.innerHTML = html_output;
</script>
</td>

</tr>
{% endfor %}

其中 unique_id 是循环中每个每个元素的唯一属性。

关于javascript - 在 html 和 javascript 中迭代循环仅执行一次 - 应该在循环中每次执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16294110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com