2011-03-29 77 views
36

嗨社區#1號,jQuery的:從類選擇

很難解釋,但...

有沒有什麼辦法,我可以從東西得到一個元素的ID喜歡

<a href="#" class="test" id="test_1">Some text</a> 
<a href="#" class="test" id="test_2">Some text</a> 
<a href="#" class="test" id="test_3">Some text</a> 

然後我結合

$( '試驗')

所以當我點擊其中一個元素時,我找回了id?

讓我知道是否需要進一步解釋。

非常感謝先進的。

回答

71

衛生署..如果我得到你的權利,應該是這麼簡單:

$('.test').click(function() { 
    alert(this.id); 
}); 

你可以訪問id屬性在墊層DOM節點,事件處理程序中。

+1

PS:我也合併了。每個並解決了我的問題:) – 2011-03-29 10:39:59

34

在jquery中使用「attr」方法。

$('.test').click(function(){ 
    var id = $(this).attr('id'); 
}); 
+1

潛在的問題:一旦你得到了'this',你並不需要'id',假設OP試圖通過它的ID來找到元素,而不是元素ID# – Kobi 2011-03-29 10:01:01

+0

這就是對。但是,他可能想要顯示id的名稱。 – benck 2011-03-29 10:21:07

+0

我同意兩個,這一切都取決於你的特定任務! :) – 2011-04-05 21:15:08

6

添加單擊事件時,this將返回已被單擊的元素。所以你可以使用this.id;

$(".test").click(function(){ 
    alert(this.id); 
}); 

例子:http://jsfiddle.net/jonathon/rfbrp/

2
$(".class").click(function(){ 
    alert($(this).attr('id')); 
}); 

只在jQuery的按鈕,點擊就可以做到這一點的班應該有書面

2

對於jQuery 1.6,你可以的(有些人會說應該)使用.prop而不是。 attr

$('.test').click(function(){ 
    alert($(this).prop('id')); 
}); 

正是在這個崗位進一步討論:.prop() vs .attr()

0

從這個例子沒有什麼,對我的作品

for (var i = 0; i < res.results.length; i++) { 
     $('#list_tags').append('<li class="dd-item" id="'+ res.results[i].id + '"><div class="dd-handle root-group">' + res.results[i].name + '</div></li>'); 
} 

    $('.dd-item').click(function() { 
    console.log($(this).attr('id')); 
    }); 
1

要小心,如果你使用的脂肪箭頭的功能,你會得到未定義此.id 今天浪費了10分鐘,想知道這到底是怎麼回事

+0

什麼是脂肪箭頭功能? – 2016-11-15 12:47:07

+1

https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Functions#Arrow_functions – nasoj1100 2016-11-15 13:21:45

+0

謝謝!不勝感激! – 2016-11-15 15:20:16