2012-11-26 191 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