2012-11-26 124 views
0

我努力的目标与jQuery如下:目标链接的href =“”使用jQuery

<link rel="stylesheet" href="css/test.css"> 

我想不通的是如何设置默认路径(css文件夹)?

<button data-button="test">Just a Test</button> 


<script> 
var button = $('button'), 
    link = $('link'), 
    stylesheet = $(this).data('button'); 

    button.on('click', function() { 
     console.log(this); 
     link.attr('href', stylesheet + '.css'); 
}); 
</script> 

眼下这将改变按钮,点击CSS只有CSS是根......所以,我该怎么办告诉他,CSS默认路径为“CSS /”。

试图找到没有成功。

P.S.一个问题与JS相关,但不是质疑标题。

更有甚者尤佳正确:

var $something = $('#something'); 
or 
var something = $('#something'); 
+3

使用'$'在变量名只是一个风格偏好。没有什么比这更“正确”。 – Pointy

+4

页面加载后更改'link'不会做任何事情;您将不得不加载另一个样式表。 –

+1

我会选择第二种声明风格,因为在变量名称前面添加$可能会导致混淆,因为它的作用(很多自定义jquery方法以$开头)而没有提供真实的信息(jquery对象实际上可能只是任何东西) – jonBreizh

回答

5

一样容易,因为这

link.attr('href', 'css/' + stylesheet + '.css'); 
3

你为什么不干脆提到在代码本身

link.attr('href', 'css/'+stylesheet + '.css'); 

为了回答您的其他问题的路径css/

var $somethingvar something都是有效的变量名称。你的选择。

4

如果你想切换样式表,你应该使用alternate stylesheets代替。

<link rel="alternate stylesheet" href="css/test1.css"> 
<link rel="alternate stylesheet" href="css/test2.css" disabled> 

在jQuery中,随后可以删除/添加disabled属性切换样式表:

var links = $("link[rel='alternate stylesheet']"); 
var button = $("button"); 

button.on('click', function() { 
    links.filter(":disabled").prop("disabled", false).siblings().prop("disabled", true); 
}); 
+0

学习新事物很有趣。然而由于某种原因,我的示例在本地主机上替我替换了样式表,即使它没有被包含在任何地方。这很奇怪... 试过你的剧本,什么都没有发生,猜我需要玩它。 – dvLden

+0

不确定在什么情况下你正在做这件事,但你也可能需要一个默认的样式表(一个不是交替的)。 – mekwall

+0

没有确切的背景...只是玩,以了解更多:) – dvLden