jqueryjquery-templates

Get Index in jQuery template


I am using the jQuery template plugin and don't know how to get the index of items: http://api.jquery.com/category/plugins/templates/

Here is my code:

<script id="optionTmpl" type="text/x-jquery-tmpl">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    {{each Answers}}
        <tr>
            <th><input type="radio" name="group1" value="${this.AnswerID}" /></th>
            <td>${this.AnswerText}</td><!-- add number in this line--->
        </tr>
    {{/each}}  
    </table>
</script>

I want to show the answer in the format like the following

1)answer1, 2)answer2, 3)answer3

or

a)answer1, b)answer2, c)answer3

What should I do?


Solution

  • There's an implicit $index (and $value) available inside the {{each}} loop, you can use that here:

    <script id="optionTmpl" type="text/x-jquery-tmpl">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
        {{each Answers}}
            <tr>
                <th><input type="radio" name="group1" value="${this.AnswerID}" /></th>
                <td>${this.AnswerText} ${$index + 1}</td>
            </tr>
        {{/each}}  
        </table>
    </script>
    

    You'll probably want to add 1 because it's 0-based, like I have above.