0

簡単な jquery data() テストを行っています。ただし、未定義を返しています。ただし、jsfiddle でも動作します (http://jsfiddle.net/yrCdj/)。

div を設定する jinja2 ループがあり、後で使用するためにいくつかのメタデータでタグ付けしたいと考えています。

{% 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>

未定義を返します。何がうまくいかないのかについてのアイデアはありますか?スコープの問題のように見えるので、DOM から直接データを取得する方法を見つける必要があるかもしれません。

4

1 に答える 1

0

closedivタグの後にスクリプトを実行してみてください。

{% 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 %}
于 2012-06-22T03:42:33.937 に答える