web-dev-qa-db-ja.com

jquery:オブジェクト名を取得しますか?

以下のコードでクリックしたオブジェクト名を取得しようとしていますが、[オブジェクトオブジェクト]しか取得できません。どうすればオブジェクト名を取得できますか?

<a href="#" class="clickme">click</a>

    $('.clickme').click(function(){
      alert($(this));
      return false;
    });

オブジェクト名として'.clickme'を取得したいと思います。

ありがとう。

編集:

助けてくれてありがとう。はっきりしないのでごめんなさい。

このjqueryclick()をカスタマイズされた関数またはプラグインに変換するときに、オブジェクト名を動的に取得したいと思います。

そう、

<a href="#" class="clickme">click</a>

        $('.clickme').click(function(){
          alert($(this));
          return false;
        });

オブジェクト名として'.clickme'を取得したいと思います。

そして、

<a href="#" id="clickme">click</a>

        $('#clickme').click(function(){
          alert($(this));
          return false;
        });

オブジェクト名として'#clickme'を取得したいと思います。

そのため、ID名を取得したい場合もあれば、オブジェクト名としてクラス名を取得したい場合もあります。

8
laukok

jQueryには、探しているものを見つけるために使用できる内部プロパティselectorがあります。

_$('.clickme').selector == '.clickme';
$('.clickme').find('a').selector == '.clickme a';
_

ただし、thisを使用して再選択する必要があるため、click(function(e){})内でこれにアクセスすることはできません。

_$('.clickme').click(function(e){
  alert($(this).selector); // alerts nothing
});
_

ただし、クリック関数を作成するときに、その要素を変数に割り当てて、次の場所で参照することができます。

_var $cm = $('.clickme').click(function(e){
  alert($cm.selector); // alerts '.clickme'
});
_
8
mVChr

これは正確な質問には答えませんが、私がそこに着いたときに得た質問には答えます-だからあなたも多分;-)

簡単な答え:「$(this).attr( 'name')」と同じ「this.name "」を使用してください

サンプル:

$("*").click(function (event) {
   event.stopPropagation();
   // Display the name of the clicked object
   $(this).after("<span> " + this.name +" clicked! </span>");
   // Change the name for what you want (optional - just to show it's doable)
   this.name = this.name + "X";
});
3
Le Droid

それがクラスです。オブジェクト名ではなく、確かに一意のものはありません。

_this.className_または$(this).attr('class')を使用して取得できます。

何かユニークなものが必要な場合は、id属性を使用し、classidに置き換えます。

3
ThiefMaster

イベントオブジェクトを使用する代替手段

$('.clickme').click(function(e){
  alert($(e.target).attr('class'));
  return false;
});
1
Quincy

名前またはID?

 $('.clickme').click(function(){
  alert( this.id );  // or $(this).attr('name') if you want the name
  return false;
});

実際にどのように見えるかは、クラスが必要なことです(ただし、クラスをセレクターとして使用したため、理由はわかりません)。

 $('.clickme').click(function(){
  alert( $(this).attr('class') );
  return false;
});
1
tvanfosson