这个有点难
$('a').css('color','#ff6600');
我正在制作一个样式切换器,它必须操纵 head 元素 css 属性
<head>
HEAD TAGS
<style type="text/css">
a{color:#ff6600;}
</style>
</head>
我不能使用 $.css() 的原因是因为它操纵页面上任何给定元素的内联 css 样式,从而覆盖例如菜单悬停链接颜色或任何其他最初不是 ff6600 的链接颜色。
任何帮助表示赞赏。
您似乎需要本文中的功能:
getCSSRule()
: 获取 CSS 规则。你可以编辑它:
var aCSS = getCSSRule('a'); // get the 'a' rule you mentioned.
aCSS.style.color = 'green'; // change its color to green
aCSS.style.textDecoration='underline overline'; // change it a little more
killCSSRule()
: 删除 CSS 规则——页面上任何具有该样式的对象都会立即变为无样式。
killCSSRule('a');
addCSSRule()
:直截了当:创建一个新的 CSS 规则。
var someDiv = addCSSRule('#someDiv');
someDiv.style.fontWeight = 'bold';
检查这个小提琴函数的代码和一些使用示例。不要忘记查看文章以获取详细信息: Totally Pwn CSS with Javascript。
将新的 CSS 添加到头部。由于您在评论中提到您希望在用户更改它时切换它,您可以创建一个带有 ID 的样式,然后更新它:
$("<style id='customStyle'></style>").appendTo("head");
$("#switcher").click(function () {
var r=Math.floor(Math.random()*255);
var g=Math.floor(Math.random()*255);
var b=Math.floor(Math.random()*255);
$("#customStyle").text("a {color:rgb(" + r + ", " + g + "," + b + ");}");});
看到这个小提琴:
你必须用一个ID
(或一个类的链接class
)来标识你的链接,然后你可以使用 jQuery 更有效地定位它们,所以你的代码必须是这样的:
<head>
<!-- HEAD TAGS -->
<style type="text/css">
a{color:#ff6600;}
</style>
</head>
<body>
<a id="link1" href="#"> LINK 1</a>
<a id="link2" href="#"> LINK 2</a>
</body>
现在,如果您只想 target LINK 1
,您可以在 jQuery 中执行此操作:
$('a#link1').css('color','#ff6600');