javascript
  • google-app-engine
  • jinja2
  • 2013-04-30 68 views 0 likes 
    0

    我想呈現一個模板,顯示評論數量(1評論或xxx評論)。我正在通過jinja2迭代GAE中的實體實例對象,但它只是在此之後通過每個循環的intead執行第一個循環的腳本。我的代碼有什麼問題?遍歷循環在HTML和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 %} 
    
    +0

    爲什麼不使用jinja本身沒有任何JavaScript?這不是必需的。 – 2013-04-30 07:10:37

    +0

    無論如何,你必須給你的'td'每行一個唯一的ID,如下所示:''。並在你的javascript:'var reviewCount = document.getElementById(「num_reviews - {{each.unique_id}}」);'。 – 2013-04-30 07:14:26

    回答

    2

    神社解決方案,無需任何額外的javascript:

    {% 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是對各each元素的獨特屬性你的循環。

    +0

    ohhh - 不知道你可以在忍者那裏做到這一點! – user1769203 2013-05-01 13:43:40

    相關問題