2011-04-02 136 views
7

我想通過下面的代碼檢索點擊的對象名稱,但我只獲得[對象對象],我如何獲得對象名稱?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

您可以舉一個例子,說明點擊'? – 2011-04-02 16:51:24

回答

7

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

3

這是班級。不是對象名稱,也不是唯一的。

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

如果您想要一些獨特的東西,請使用id屬性並用id替換class

+2

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

1

姓名或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

1

使用事件對象

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

謝謝。如果它是一個id而不是一個類,會發生什麼情況。我可以使它動態。請檢查我的編輯上面的解釋。謝謝。 – laukok 2011-04-02 17:23:33

3

這不響應的確切問題,但對一個當我到達那裏我得到了一個選擇 - 所以你也可能;-)

簡短的回答:使用 「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"; 
});