2012-09-03 63 views
1

我正在嘗試編寫一個選擇器,只有在它是錨點的情況下才會獲取this對象。我希望它沒有得到任何東西,只有<a>標籤。如何將「this」與另一個選擇器相結合?

$('.link').mouseover(function(){ 

    $("a", this).css('color','#00F'); 

}) 

$("a", this).css('color','#00F');不工作,但一直期望的效果,如果我在查詢中只留下this。我可以在例子,博客和文檔中找到的所有其他選擇器都是用於獲取兒童對象(find()children()),並結合兩個選擇器(使用add())或幾乎任何其他東西,但我正在尋找的東西。任何人都可以幫忙嗎?

+0

您的選擇器與$(this).find('a');'完全相同,換句話說,它會嘗試查找所有與元素上下文中左側給出的描述相匹配的元素正確的。 – adeneo

+0

您可以發佈一些HTML標記,清楚地標識您想要選擇的內容嗎?目前我想知道爲什麼你不只是使用'$('。link a')'作爲你的選擇器,這顯然意味着我錯過了,或者誤解了一些東西。 –

+0

@大衛托馬斯:'a.link'的確,它會更有意義 – zerkms

回答

5

您可以使用is()方法檢查是否$(this).is('a'),然後做出相應的反應;

if ($(this).is('a')) { 
    $(this).css('color', '#00F'); 
} 

但是,也許在這種情況下,更好的解決方案是使用filter()方法$(this).filter('a').css('color','#00F');

要注意,filter()過濾當前 jQuery對象;因此$('*').filter('a')會過濾所有元素中的a。另一方面,$('a', this)(相當於$(this).find('a'))搜索jQuery對象中與提供的選擇器匹配的元素的後代。

+0

謝謝。這正是我所期待的。 – Kuro

相關問題