以下のコードでクリックしたオブジェクト名を取得しようとしていますが、[オブジェクトオブジェクト]しか取得できません。どうすればオブジェクト名を取得できますか?
<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名を取得したい場合もあれば、オブジェクト名としてクラス名を取得したい場合もあります。
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'
});
_
これは正確な質問には答えませんが、私がそこに着いたときに得た質問には答えます-だからあなたも多分;-)
簡単な答え:「$(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";
});
それがクラスです。オブジェクト名ではなく、確かに一意のものはありません。
_this.className
_または$(this).attr('class')
を使用して取得できます。
何かユニークなものが必要な場合は、id
属性を使用し、class
をid
に置き換えます。
イベントオブジェクトを使用する代替手段
$('.clickme').click(function(e){
alert($(e.target).attr('class'));
return false;
});
名前または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;
});