2012-01-16 115 views
4

美好的一天!使用JQUERY添加/刪除css文件

我想根據列表的大小添加和刪除CSS文件。 我的代碼如下:

$("#size_storedList").ready(function(){ 
    var list_size = $("#size_storedList").attr('value'); 
    if(list_size <= 4){ 
     if ($("link").is('.size5')){ 
      $('link.size5').removeClass(); 
     } 
     if ($("link").is('.size6')){ 
      $('link.size6').removeClass(); 
     } 
     $('head').append('<link class="size4" rel="stylesheet" href="css/stored_list/list_size4.css" type="text/css" />'); 
    } else if(list_size == 5){ 
     if ($("link").is('.size4')){ 
      $('link.size4').removeClass(); 
     } 
     if ($("link").is('.size6')){ 
      $('link.size6').removeClass(); 
     } 
     $('head').append('<link class="size5" rel="stylesheet" href="css/stored_list/list_size5.css" type="text/css" />'); 
    } else if(list_size == 6){ 
     if ($("link").is('.size4')){ 
      $('link.size4').removeClass(); 
     } 
     if ($("link").is('.siz5')){ 
      $('link.size5').removeClass(); 
     } 
     $('head').append('<link class="size6" rel="stylesheet" href="css/stored_list/list_size6.css" type="text/css" />'); 
    } 
}); 

但它是一種凌亂。我能做些什麼來最大限度地減少檢查,如果文件已經存在或沒有,以便我可以刪除它

if ($("link").is('.size5')){ 
      $('link.size5').removeClass(); 
} 

謝謝。

回答

8
<link rel="stylesheet" href="default.css" type="text/css"> 

<ul> 
    <li><a id="css-red" href="#red">Red</a></li> 
    <li><a id="css-blue" href="#blue">Blue</a></li> 
    <li><a id="css-green" href="#green">Green</a></li> 
</ul> 

$(document).ready(function() { 
    // red 
    $("#css-red").click(function() { 
    $("link[rel=stylesheet]").attr({href : "red.css"}); 
    }); 
}); 

以上概念與你不同,但我認爲這將是一個好主意。您可以自定義當前的代碼。

+1

非常好的技術 – Trace 2012-01-16 19:57:57

+1

+1,很不錯!如果你有多個樣式表,你可以使用$(「link [rel = stylesheet]」)[index],或者你可以使用$(「link [rel = stylesheet]」)來仔細閱讀它們。 – 2012-08-07 21:54:58

+0

如果我們有多個樣式表呢?現在正在更換 – 2016-03-24 08:58:26

1

您可以使用body標記上的data-*屬性並保存,比如data-loaded-css,即當前活動的css文件的網址。

也看到$.data()