2010-01-14 84 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">