jquery:获取对象名称?

jquery:获取对象名称?

问题描述:

我想通过下面的代码检索点击的对象名称,但我只获得[对象对象],我如何获得对象名称?jquery:获取对象名称?

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

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

我想获得'.clickme'作为我的对象名称。

谢谢。

编辑:

感谢帮助家伙。对不起,不清楚。

我想要动态获取对象名称,当我把这个jquery click()变成一个自定义的函数或插件。

所以,

<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名称,但有时候我想把类名称作为对象名称。

+0

您可以举一个例子,说明点击 a>'? – 2011-04-02 16:51:24

jQuery也有可以用来找到你要找的内部属性selector

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

但是你不能click(function(e){})中使用此,因为你必须使用重新选择this

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

然而,当你创建点击功能,您可以该元素分配给一个变量和内引用它:

var $cm = $('.clickme').click(function(e){ 
    alert($cm.selector); // alerts '.clickme' 
}); 
+1

完全喜欢最后一个例子。易于阅读和稍后在其他条件语句中使用。 – blackhawk 2013-03-15 15:37:25

这是班级。不是对象名称,也不是唯一的。

您可以使用this.className$(this).attr('class')得到它。

如果您想要一些独特的东西,请使用id属性并用id替换class

+2

'$(this).attr('class')' – tvanfosson 2011-04-02 16:27:28

姓名或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; 
}); 
+0

我不得不使用e.target.id使用事件对象,因为昆西提到 – tettoffensive 2017-07-29 00:05:20

使用事件对象

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

谢谢。如果它是一个id而不是一个类,会发生什么情况。我可以使它动态。请检查我的编辑上面的解释。谢谢。 – laukok 2011-04-02 17:23:33

这不响应的确切问题,但对一个当我到达那里我得到了一个选择 - 所以你也可能;-)

简短的回答:使用 “this.name”,这是不是 “$(本).attr( '名')”

样品相同:

$("*").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"; 
});