使用jQuery的悬停状态

使用jQuery的悬停状态,jquery,css,Jquery,Css,我知道悬停状态可以通过css实现,这通常是我比较喜欢的方式,但是在这个特殊的情况下,我将悬停在一个有几个子元素的整个元素上,我试图实现的效果是使所有文本(无论是span还是p标记)变为白色 这里有一个代码笔,它对代码进行了采样,我不确定是否可以通过使用逗号分隔同时针对几个元素,但在本例中我尝试过 我在ul中有一个span和p标签的组合,我试图将其作为目标,但我觉得我没有正确地将所有元素作为目标,这就是为什么悬停时文本没有变为白色 当前唯一变为白色的文本是我在css中声明的文本 有人能提出更好的方

我知道悬停状态可以通过css实现,这通常是我比较喜欢的方式,但是在这个特殊的情况下,我将悬停在一个有几个子元素的整个元素上,我试图实现的效果是使所有文本(无论是span还是p标记)变为白色

这里有一个代码笔,它对代码进行了采样,我不确定是否可以通过使用逗号分隔同时针对几个元素,但在本例中我尝试过

我在ul中有一个span和p标签的组合,我试图将其作为目标,但我觉得我没有正确地将所有元素作为目标,这就是为什么悬停时文本没有变为白色

当前唯一变为白色的文本是我在css中声明的文本

有人能提出更好的方法吗


谢谢。

您应该可以在CSS中执行此操作:

ul.qaUl:hover span.q,p.qP,span.A,p{
  color:#fff;
}
如果ul.qaUl下的所有内容都应变为白色,则您可以执行以下操作:

ul.qaUl:hover *{
   color:#fff;
}

显然,只有当您的选择器足够具体,能够覆盖其他样式时,这才有效。

我认为您的选择器应该是:

$('span.q, p.qP, span.genA, p')
除此之外,您还可以使用css样式,这些样式通过级联更为具体,因此您必须创建一个特定的白色类,或者添加!分号前的颜色很重要

显然,只有当您的选择器足够具体,可以覆盖其他样式时,这才会起作用


在javascript的末尾还缺少“;”。

您应该在jquery hover或css:hover之间进行选择,如果您使用它们来更改相同颜色的样式,它将与Jack的回答类似,jquery的变体将使用以下内容:

$("#parent").mouseover(function(){
    $(this).find("*").addClass('white');
});

.find(“*”)
递归地以所选元素的所有子元素为目标

感谢您的提示,我想我将尝试使用jquery选项来尝试新的内容。