2012-01-16 94 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()