2011-07-17 42 views
1

我有一堆數據的表。每個<td>包含class="person"id=0,1,2,3, etc.基於$i(我正在使用循環從數組中構建我的表)。點擊()使用JQuery/JS存儲​​的ID

我喜歡它,所以無論何時單擊一個人(<td>),該單元格都會用某個CSS突出顯示。

到目前爲止,我覺得我可以用這個:

$點擊(函數(){

$id = some function to which attr('id') was selected???; 
$('id').addClass("highlights"); 

});( '的人。')。

有誰知道我如何獲取被點擊的單元格的ID?任何幫助或方法表示讚賞。

謝謝!

回答

2

this.id指方法內的tdid

$('.person').click(function(){ 

    var id = this.id; 
    $('#' +id).addClass("highlights"); 

}); 

但是如果你只想改變元素的東西,那麼你並不真正需要的id。這是因爲this關鍵字指的是實際點擊的元素。

這樣你就可以直接做

$('.person').click(function 
    $(this).addClass("highlights"); 
}); 

要小心,雖然,元素cannot be numeric的ID(儘可能有效的HTML來講..

而且我引用

ID名稱令牌必須以字母([A-Za-z])開頭,後面可以跟隨任意數量的字母,數字([0-9]),連字符(「 - 」),下劃線「_」),冒號(「:」)和句點(「。」)。

+0

非常好,謝謝你,比預期的更容易!我認爲使用$(this).addClass會將該類應用於所有「person」類,但是click()會返回該ID嗎?我怎麼能知道下一次(它在API中沒有提及)? – user339946

+0

@ user339946,查看jquery中事件綁定系統核心的['.bind()'](http://api.jquery.com/bind/)文檔,你會發現**處理程序,關鍵字*'this' *指向綁定處理程序的DOM元素。** –

0
id = $(this).attr("id"); 

好像是你想:)行

+0

請..不要!不要在不需要使用jQuery的地方使用簡單的JavaScript。看看@Gaby aka G. Petrioli的回答,如果你不明白我在說什麼。 – RReverser

2
$('.person').click(function(){ 

$(this).addClass("highlights"); 

}); 

有時候,你可以在jQuery中關於ID忘記:)