1

TWIG でループを使用してアンカーのリストを返しています。

{% for entity in entities %}
<a href="javascript:void(0);" class="show_post_anchor" data-post-id="{{ entity.id }}">{{ entity.id }}</a>
{% endfor %}

最終的な目標は、アンカーで AJAX/jquery onclick を使用して div にいくつかの情報をロードすることです

$(document).ready(function() {

   $('a.show_post_anchor').click(function(e){

      var id= $("a.show_post_anchor").attr("data-post-id");
      alert(id);


       e.preventDefault();
       return false;

   });
  });

問題は、アンカーが (異なる data-post-id 値で) 正しく表示されている場合でも、アラートが異なるアンカーの onclick で常に同じ値を返すことです。何時間も考えた後でも、問題がどこから来るのか本当にわかりません。あなたの助けに感謝します。

4

4 に答える 4

4

クリックされた正確な要素に対処する必要があるため、代わりに次のようにします。

var id= $("a.show_post_anchor").attr("data-post-id");

書きます:

var id= $(this).attr("data-post-id");

それで解決するはずです。

于 2013-08-14T15:52:34.593 に答える
3

これを試して:

すべての<a>タグに.show_post_anchorクラスがあり$('a.show_post_anchor')、DOM で使用していたため、最初にクラスを検索し、.show_post_anchor最初の値のみを取得$(this)し、現在クリックされているオブジェクトを表します。

 $('a.show_post_anchor').click(function(e){
      var id= $(this).attr("data-post-id");
      alert(id);
      e.preventDefault();
      return false;
  });

デモ

于 2013-08-14T15:52:17.330 に答える
2

次のように、セレクターのインスタンスではなく、最初の一致 (最初の ID) を選択するセレクターを再度使用しています。

var id= $(this).attr("data-post-id");
于 2013-08-14T15:53:09.440 に答える
1
var id= $("a.show_post_anchor").attr("data-post-id"); 

クリックしているアンカーを取得していないため、e から値を指定する必要があります

する必要があります

    var id= $(this).attr("data-post-id"); 
于 2013-08-14T15:58:39.743 に答える