2

したがって、「class1」というクラスで生成された div のセットがあります。それらに名前または ID を割り当て、JQuery を使用して、これらの div の特定の 1 つをクリックしたことを登録できるようにする必要があります。私はこのコードを持っていますが、私が知っているのはクラス名を選択することだけなので、これは機能しません:

jQuery(".class1").click(function () {
     // do something                    
});

クリックされた div の一意の識別子を取得し、それを何かに使用できるようにする必要があります

4

2 に答える 2

3

クリックされた要素の ID にアクセスするには、クリックされた HTML 要素のコンテキストを持つidプロパティにアクセスできます。this

jQuery(".class1").click(function () {
     // do something                    
     var theId = this.id; // contains the id of the clicked element, assuming is has an id.
});

動的要素について言及します。その場合、要素が追加された後にイベントをバインドするか、委任でバインドする必要があります。

jQuery 1.7 以降ではon() を使用します。

jQuery("body").on("click", ".class1", function () {
     // do something                    
     var theId = this.id;
});

jQuery 1.6 以前で使用する場合、delegate() :

jQuery("body").delegate(".class1", "click", function () {
     // do something                    
     this.id;
});
于 2013-03-19T21:38:03.097 に答える
1

DOM ロード後にクラス名を生成している場合は、動的にデリゲート イベント ハンドラーを使用する必要があります。

jQuery('body').on('click', '.class1', function() {

  // to assign name
  $(this).attr('name', 'someName');

  // to assign ID
  $(this).attr('id', 'someUniqueID');

  // to get

  this.id  //  to get id

  this.name // to get name

});

ノート:

デリゲート イベント処理の場合は、.class1代わりに任意の static-container 要素を使用する必要がありbodyます。それが効率的で最善の方法です。

于 2013-03-19T21:33:59.993 に答える