如何在JQuery中设置链接访问的颜色

时间:2011-08-11 17:31:40

标签: javascript jquery css

如何设置“a”标签的访问颜色。这是我的代码

theobj.find('a:visited').css('color', thejson.WidgetInfo.TextColor);

以上代码无效。我只能使用内联css。有没有办法做到这一点?

5 个答案:

答案 0 :(得分:3)

您可以构建样式标记,然后将其写入页面。

var visited_link_styling = "<style> a:visited{ color:'red'; } </style>";
$('head').append( visited_link_styling );

这可能有点令人沮丧,因为JavaScript不擅长多线字符串。

答案 1 :(得分:2)

我知道jQuery中没有访问过的选择器,但是a similar question指向一个插件来处理这个Remy Sharp Visited Plugin

答案 2 :(得分:1)

我建议您使用css类并设置该类,但由于您只能使用内联样式,因此可以尝试使用

theobj.find('a').attr("style", "color:#000000 !important");

答案 3 :(得分:0)

您是否有理由想要使用jQuery而不是纯CSS?访问链接的行为应该与未访问的链接不同吗?

根据您对上述问题的回答,解决方案会有所不同。

CSS:

a:hover { color: #000; }

jQuery(用于多个链接颜色属性):

var ele = $("#widget a"); // Replace the desired element/object here
var eleColor = ele.css('color'); // Grab what the element's color is
if(eleColor != '#000000' || eleColor != '#000'){ // If it doesn't match X or Y
ele.css("color","000"); // Set to default color
}

^替换上面所需的颜色。

或接近2:

$("#widget a").css("color","000"); // Set all links to #000

或接近3:

$("#widget a").click(function(){ $(this).css("color","000"); });

工作示例:http://jsfiddle.net/9N5Xe/

答案 4 :(得分:0)

实际上,您无法在仅适用于某些伪访问器(如已访问)的元素上设置任何属性。 CSS文档是声明性的,因为您在文档中包含CSS,然后可以使用规则集。 JavaScript不是声明性的,而是执行的,这意味着您只能捕获一些事件然后对其做出响应。换一种说法;您可以选择所有访问过的链接并为每个链接设置颜色,但不能为访问过的链接设置颜色。

现在,为了达到你想要的效果,你可以为每个锚上的click事件设置一个'live'事件处理程序,然后相应地应用CSS。

出于好奇;为什么不在规则元素或css文档中设置规则?