2012-03-26 21 views
0

這是我第一次使用jQuery。我只想快速解決以下問題:

這很簡單;當div#a1.toolbotbut被點擊時,顯示div#a1p。 單擊#a2.toolbotbut時,顯示div#a2p。 當點擊#b2.toolbotbut,DIV#B2P顯示,等等等等 所以蹦牀網上單人的jQuery看起來是這樣的:

$('#a1.toolbotbut').click(function() { 
    $('#a1p.overlay').fadeIn('slow'); 
    }); 

$('#a2.toolbotbut').click(function() { 
    $('#a2p.overlay').fadeIn('slow'); 
    }); 

你能告訴我怎麼用$ (this)或var來挑選所選的div id並將其插入到$('... p.overlay')中,這樣我就可以爲整個函數使用兩行代碼。不要擔心隱藏或標記主動......只是我需要的基本技巧。

非常感謝。

回答

2

像這樣:

$('.toolbotbut').click(function() { 
    var id = $(this).attr('id'); 
    var overlayId = '#' + id + 'p.overlay'; 
    $(overlayId).fadeIn('slow'); 
}); 
+0

謝謝!正是我需要知道的 – 21stcn 2012-03-26 16:58:07

1

this變量是指在調用的點擊事件的函數()(即#a1.toolbotbut)的對象。如果你在函數內部指的是this,你實際上是指#a1.toolbotbut。如果您將this作爲$(this)包含在$()中,那麼您已將#a1.toolbotbut轉換爲jQuery對象。

jQuery的對象具有attr方法,它會返回一個屬性或屬性,因此你可以這樣做:

var div_id = $(this).attr(); // returns "a1" 

我希望我明白你問什麼,這有助於。祝你好運。

+0

你理解正確。謝謝你的幫助。 – 21stcn 2012-03-26 16:54:53