2010-03-04 90 views
1

比方說,我做一些愚蠢的事是這樣的:「我選擇了什麼標籤?」 jQuery中

<div class="my_class">fun wee!!</div> 
<span class="my_class"><b class="my_class">Title</b></span> 
<p class="my_class">Client</p> 

<Script> 
$('.my_class').click(function() { 
    alert('You clicked a ??????? Tag!!'); 
}); 
</script> 

在那裏我有很多選擇不同的標籤具有相同的選擇。我如何確定選擇了哪個標籤?

看起來似乎簡單,但我還沒有找到一個答案......

回答

4

在jQuery的事件處理程序,「這個」被設定爲在其上觸發事件的DOM節點。所以,你會想:

$('.my_class').click(function() { 
    alert('You clicked a ' + this.nodeName + ' Tag!!'); 
}); 

的W3C DOM規範有更多的信息:http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247

+0

nodeName(vs tagName)上的+1,由於IE問題。 – Marc 2010-03-04 22:37:37

+1

當我知道jquery比我知道的普通的javascript更難過時,所以我不能做這麼簡單的事情! – SeanDowney 2010-03-04 22:42:29

0

如果你想要做的事與具有相同類的各種HTML標籤不同,你幾乎總是最好使用在選擇器中的標籤,只獲得你想要的標籤,而不是通過類來獲取所有東西,並使用某種邏輯(通過標籤選擇的短缺)將它們整理出來。

$('div.my_class').click(function() { alert("hey, I'm a div"); }); 

我想這個例外是,如果你只是想提醒標籤名稱。

+0

我同意這將是理想的,但我已經把自己畫到了一個角落 – SeanDowney 2010-03-04 22:45:52