首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在html和javascript中循环迭代只执行一次-应该在循环中执行一次

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

Stack Overflow用户
提问于 2013-04-30 15:03:48
回答 1查看 100关注 0票数 0

我正在尝试呈现一个显示评论数量(1条评论或xxx条评论)的模板。我通过jinja2遍历了GAE中实体实例的一个对象,但它只在之后的每个循环中执行第一个循环。我的代码出了什么问题?

代码语言:javascript
复制
   <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 %}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-30 15:18:35

不需要任何额外javascript的Jinja解决方案:

代码语言:javascript
复制
{% for each in courses_taught %}
    {{ each.num_reviews }}
    review{% if each.num_reviews > 1 %}s{% endif %}
{% endfor %}

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

代码语言: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是循环中每个each元素的唯一属性。

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

https://stackoverflow.com/questions/16294110

复制
相关文章

相似问题

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