2010-01-14 104 views
1

我在HTML代碼中有這樣的:jQuery的addClass標籤問題

<ul id="navlist" 
<li id="tabItem1"><a href="#">Item one</a></li> 
<li id="tabItem2"><a href="#">Item two</a></li> 
<li id="tabItem3"><a href="#">Item three</a></li> 
<li id="tabItem4"><a href="#">Item four</a></li> 
</ul> 

我想一個類添加到一個元素,像這樣的jQuery:(它不工作)

var currentTab = 1; 

$(document).ready(function() 
{   
    $("li#tabItem" + currentTab + ":has(a)").addClass("navlistHover"); 
    //console.log("li#tabItem" + currentTab + ":has(a)"); 
}); 

當刪除一個元素並像下一個例子那樣做時,沒有問題。

$("li#tabItem" + currentTab).addClass("navlistHover"); 

我試過下面的代碼:

$('navlist li#tabItem' + currentTab + ' a').addClass('navlistHover'); 

,但它不工作,很奇怪

+0

反正你可以存儲在'currentTab'活動標籤元素'變種currentTab = $(」 li#tabItem1「);'這會更好。然後你會添加像這樣的''''''''''''''''''''''''''''''''''''addClass(「navlistHover」);' – kjagiello 2010-01-14 14:25:54

+0

您是否試圖在has()語句中的'a'元素周圍添加引號,如$(「li#tabItem 「+ currentTab +」:has('a')「)。addClass(」navlistHover「); – ScampDoodle 2012-07-26 15:44:11

回答

2

試試這個:

$('navlist li#tabItem' + currentTab + ' a').addClass('navlistHover'); 

:has()選擇器選擇物品有a元素作爲孩子:

http://docs.jquery.com/Selectors/has

+0

這會將navListHover添加到錨標記中,而不是添加到他正在尋找的LI中。 – Parrots 2010-01-14 14:24:26

+0

這不是我解釋問題的方式。 – 2010-01-14 14:25:47

+0

他的確說:'我想添加一個類到一個元素' – 2010-01-14 14:26:34

0

它的工作,如果你添加HTML結束標記爲

<ul id="navlist">