使用jquery css()函数更改'a'属性也会更改:hover,a:active,a:focus属性

时间:2012-05-21 09:42:05

标签: jquery css jquery-selectors

我最初使用css设置链接(也是不同的状态),然后使用jquery css()函数更改标记的css属性。问题是 - css()函数似乎不仅影响a而且影响所有状态 这意味着写'a'对应于'a'的所有状态。所以我们需要写一些东西:链接,只改变'a:link'而不是'a'。

  

如何使用jquery写这个。

编码我在做什么:
CSS:

#topics_nav a {
    color:#000; 
}
#topics_nav a:visited{
    color:#c00;
}
#topics_nav a:hover,a:active,a:focus{
    color:#FFF;
}

jquery:

$("document").ready(function(e) {
    $('#topics_nav a').css('color','#300');
});

此jQuery将所有状态的颜色更改为#300

我不想仅更改链接状态,也不想修改任何其他状态。以下解决方案提供的方法仅影响悬停(或任何其他)状态,但是还有其他任何方法,而不是添加/删除类。

有一个solution来定义一些所需的类(像class1:hover这样的类)而不是改变css我们可以改变类。
但是:link呢?

3 个答案:

答案 0 :(得分:4)

#topics_nav a {
    color:#000; 
}
#topics_nav a:visited{
    color:#c00;
}
#topics_nav a:hover,a:active,a:focus{
    color:#FFF;
}
.myclass:hover {
    color: #300;
}


$("document").ready(function() {
    $('#topics_nav a').addClass('myclass');
});

我认为这是一种更好的方法。让CSS设置像这样的元素。

答案 1 :(得分:0)

可能因为您的代码不正确?

原始代码

$('#topics_nav' a).css('color','#300');

正确代码

$('#topics_nav a').css('color','#300');

答案 2 :(得分:-1)

使用此代码。它可能会帮助你

$("document").ready(function(e) {
       $('#topics_nav a').hover(function(){
       $(this).css('color','#300');
  });
});