如何使用jQuery切换CSS样式表?

Mic*_*rtz 44 css jquery themes stylesheet

我正在做的事情很简单.

您单击一个按钮(id="themes"),它会打开一个(id="themedrop")向下滑动的div 并列出主题.(此时我只有两个)

<button id="original">Original</button><br />
<button id="grayscale">Grayscale</button>
Run Code Online (Sandbox Code Playgroud)

现在当网站加载时,它加载style1.css(主/原始主题)

<link rel="stylesheet" type="text/css" href="style1.css">
Run Code Online (Sandbox Code Playgroud)

现在我想弄清楚的是......如何点击灰度按钮将样式表从style1.css更改为style2.css(注意:文件位于同一目录中)

任何帮助将非常感激.

Val*_*Val 64

$('#grayscale').click(function (){
   $('link[href="style1.css"]').attr('href','style2.css');
});
$('#original').click(function (){
   $('link[href="style2.css"]').attr('href','style1.css');
});
Run Code Online (Sandbox Code Playgroud)

尝试一下,但不确定它是否会起作用我没有测试过,但运气好.

  • 谢谢这帮助了我(修改版):--- $("按钮#grayscale").click(function(){$("link [rel = stylesheet]").attr({href:"style2.css" });}); (3认同)

Tet*_*axa 27

我建议你给link-tag一个id如主题.将css文件的名称data放在按钮上的-attribute中,并对它们使用相同的处理程序:

HTML:

<link id="theme" rel="stylesheet" href="style1.css">

<button id="grayscale" data-theme="style2.css">Gray Theme</button>
Run Code Online (Sandbox Code Playgroud)

和js:

$("button[data-theme]").click(function() {
    $("head link#theme").attr("href", $(this).data("theme"));
}
Run Code Online (Sandbox Code Playgroud)


小智 8

快速的方法是,

<link id="original" rel="stylesheet" type="text/css" href="style1.css">
<script>
function turnGrey(){
    //what ever your new css file is called
    document.getElementById("original").href="grey.css";
}
</script>
<button id="grey" onclick="turnGrey">Turn Grey</button><br />
Run Code Online (Sandbox Code Playgroud)