我一直在做一个简单的jquery data()测试。但它返回undefined。它适用于jsfiddle(http://jsfiddle.net/yrCdj/)。
我有一个jinja2循环填充div,我想用一些元数据标记它以供以后使用:
{% for s in siteInfo[:markers[0]] %}
<div class="sitebox2">
<script>
$(".sitebox2:last").append('<a href="/sites/d?siteid={{s[5]}}">{{s[0]}}</a><br>Distance from {{loc}} is {{s[6]}} km.<br>');
$(".sitebox2:last").data('fruit', 'apple');
</script>
</div>
{% endfor %}
然后我尝试调用此数据来测试它是否正常工作:
<script type="text/javascript">
$(".sitebox2").each(function(k, v) {
var f = $(v).data('fruit');
alert(f);
});
</script>
返回undefined。什么是错误的任何想法?它看起来像是一个范围问题,所以我可能需要找到一种直接从DOM获取数据的方法。
答案 0 :(得分:0)
尝试在关闭div标签后执行脚本。
{% for s in siteInfo[:markers[0]] %}
<div class="sitebox2">
<a href="/sites/d?siteid={{s[5]}}">{{s[0]}}</a><br>Distance from {{loc}} is {{s[6]}} km.<br>
</div>
<script>
$(".sitebox2:last").data('fruit', 'apple');
</script>
{% endfor %}
或者您可以使用data
属性,如:
{% for s in siteInfo[:markers[0]] %}
<div class="sitebox2" data-fruit="apple">
<a href="/sites/d?siteid={{s[5]}}">{{s[0]}}</a><br>Distance from {{loc}} is {{s[6]}} km.<br>
</div>
{% endfor %}