Jquery 如何选择';这个';?

Jquery 如何选择';这个';?,jquery,Jquery,我正在尝试做一个基本的下拉菜单。如何更改鼠标悬停时链接父项的字体颜色 <ul id="nav"> <li><a href="#">Parent 01</a></li> <li><a href="#">Parent 02 > </a> <ul> <li><a href="#">Item 01</a&g

我正在尝试做一个基本的下拉菜单。如何更改鼠标悬停时链接父项的字体颜色

<ul id="nav">
    <li><a href="#">Parent 01</a></li>
    <li><a href="#">Parent 02 > </a>
        <ul>
            <li><a href="#">Item 01</a></li>
            <li><a href="#">Item 02</a></li>
            <li><a href="#">Item 03</a></li>
        </ul>
        <div class="clear"></div>
    </li>
    <li><a href="#">Parent 03 > </a>
    <ul>
        <li><a href="#">Item 04</a></li>
        <li><a href="#">Item 05</a></li>
        <li><a href="#">Item 06</a></li>
        <li><a href="#">Item 07</a></li>
    </ul>           
        <div class="clear"></div>
    </li>
    <li><a href="#">Parent 04</a></li>
</ul>



$('#nav li').hover(
    function () {
        $('ul', this).slideDown("slow");

    }, 
    function () {
        $('ul', this).fadeOut("slow");          
    }
);
$(#nav li')。悬停( 函数(){ $('ul',this).slideDown(“slow”); }, 函数(){ $('ul',this.fadeOut(“慢”); } );

我尝试了
$('a',this).css(“颜色”,“蓝色”)
;但是它会改变每个
a
的颜色。我只需要更改父菜单项的
a
的颜色。

将这两个添加到您的函数中:

$(this).addClass("hover-item");

最好使用CSS类,以便在CSS中定义样式,而不是设置内联样式,这在大多数情况下是一种糟糕的做法

但是请注意,这将直接将类添加到
LI
元素,而不是
A
。这将使它更加灵活,因为您可以根据自己的喜好更改
LI
内容,并保持功能不变。并相应地调整CSS

在您的情况下,CSS应该如下所示:

li.hover-item > a
{
    color: #f00; /* adjust colour to your liking */
}
这将只设置子链接的颜色,而不是所有子链接的颜色(这也将更改子菜单中所有链接的颜色)

仅使用CSS 您是否意识到您可以轻松地使用CSS唯一的解决方案来实现您想要实现的目标?菜单的滑动和淡入仍将像现在一样进行,但您可以在CSS文件中设置
A
高亮显示:

#nav li
{
    padding: 0;
    ...
}

#nav li a
{
    padding: 3px 5px;
    display: block;
    ...
}

#nav li a:hover
{
    color: #f00; /* adjust colour to your liking */
    ...
}
如果您的
LI
中有填充,我建议您将其删除,并将填充添加到
A
中(如在我的CSS中)。同时设置
显示:块
以占用
LI
的整个可用空间


如果可能的话,只使用CSS解决方案总是比使用JavaScript要好。

将以下两个添加到函数中:

$(this).addClass("hover-item");

最好使用CSS类,以便在CSS中定义样式,而不是设置内联样式,这在大多数情况下是一种糟糕的做法

但是请注意,这将直接将类添加到
LI
元素,而不是
A
。这将使它更加灵活,因为您可以根据自己的喜好更改
LI
内容,并保持功能不变。并相应地调整CSS

在您的情况下,CSS应该如下所示:

li.hover-item > a
{
    color: #f00; /* adjust colour to your liking */
}
这将只设置子链接的颜色,而不是所有子链接的颜色(这也将更改子菜单中所有链接的颜色)

仅使用CSS 您是否意识到您可以轻松地使用CSS唯一的解决方案来实现您想要实现的目标?菜单的滑动和淡入仍将像现在一样进行,但您可以在CSS文件中设置
A
高亮显示:

#nav li
{
    padding: 0;
    ...
}

#nav li a
{
    padding: 3px 5px;
    display: block;
    ...
}

#nav li a:hover
{
    color: #f00; /* adjust colour to your liking */
    ...
}
如果您的
LI
中有填充,我建议您将其删除,并将填充添加到
A
中(如在我的CSS中)。同时设置
显示:块
以占用
LI
的整个可用空间


如果可能的话,只使用CSS解决方案总是比使用JavaScript好。

您可以使用

$(this).parent()

对于孩子们,你可以选择特定的元素,如“li”或“li:first”等

在您的情况下,我将使用样式为的类,然后:

$(this).parent().addClass("HoverClass");
以及:


您可以使用

$(this).parent()

对于孩子们,你可以选择特定的元素,如“li”或“li:first”等

在您的情况下,我将使用样式为的类,然后:

$(this).parent().addClass("HoverClass");
以及:


我在想什么!!是的,我可以只使用CSS,非常感谢matewat我在想!!是的,我可以只用CSS,非常感谢,伙计