2014-02-13 56 views
0

只是一个小问题,我现在无法得到我的头:Django模板标签/ jQuery的迭代?

我有一个表中列出的对象。其中一个对象值是一个分数。我可以使用Django模板标签将其显示为数字,但我想用我的jquery插件来显示星星。不知道如何迭代这个。我想这样的:

{% for result in mylist %} 

<td>{{ result.type }}</td> 
<td>{{ result.description }}</td> 
<td>{{ result.rating.votes }}</td> 

<td><div class="raty" data-number="{{ result.rating.score }}"></div></td> 

{% endfor %} 

进一步压低我得到这个:

<script> 
$('.raty').raty({ readOnly: true, score: $('.raty').attr('value') }); 
</script> 

的问题是,它会为每个对象以同样的比分与jQuery的..

编辑:我得到它与这工作:

<script> 
$('.raty').each(function() { 
    $(this).raty({ readOnly: true, score: $(this).attr('data-number') }); 
}); 
</script> 

回答

1

A div元素没有value属性。尝试使用隐藏的输入元素。事情是这样的:

<table> 
    {% for result in mylist %} 
     <tr><td><input type='hidden' class='hidden_score' value='{{ result.rating.score }}'></input><div class="raty"></div></td></tr> 
    {% endfor %} 
</table> 

然后在你的脚本:

$.each($('.hidden_score'), function(index, value) { 
    var myval = $(this).val(); 
    $(this).parent().find('.raty').raty({ readOnly:true, score:myval}); 
}); 

因此,对于每一个具有类hidden_​​score的元素,你会得到他们的价值做出“RATY”与elemens属于以每个元素的父母(所以他们是兄弟姐妹)与正确的分数。

+0

谢谢你的回答。这不是我正在想的。现在我得到了每个分数的输入字段,只有第一个显示了一些明星(不是正确的分数,而是“空白的星星”)。但我会尝试修改它,看看我得到了什么。 – user3199840

+0

没错。第一个字段显示星号+输入字段,其余对象显示输入字段,其中包含数字。 – user3199840

+0

oops我忘了将type ='hidden'添加到输入中! – Serafeim