简单的jQuery css背景"选择器"

Tru*_*ufa 0 javascript css jquery

我写了这个非常简单的背景选择器.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
    <title>jQuery Demo</title>
    <link rel="stylesheet" type="text/css" media="screen" href="Normal.css" />

    <script type="text/javascript">

    $(document).ready(function(){

        $("#StyleContrast").click(function() {
           $("link[media='screen']").attr("href", "Contrast.css");
         });

         $("#StylePrint").click(function() {
           $("link[media='screen']").attr("href", "Print.css");
         });

         $("#StyleNormal").click(function() {
           $("link[@media='screen']").attr("href", "Normal.css");
         });

     });

       </script>

 </head>
 <body>
    <h1>Choose A Style:</h1>
    <ul>
       <li><a id="StyleContrast" href="#">Contrast</a></li>
       <li><a id="StylePrint" href="#">Print</a></li>
       <li><a id="StyleNormal" href="#">Normal</a></li>
     </ul>
 </body>
 </html>
Run Code Online (Sandbox Code Playgroud)

我有:Normal.css Print.css Contrast.css

在一个非常基本的相同文件夹中:

body {background-color:#000000;}
Run Code Online (Sandbox Code Playgroud)

当我转到URL时,它选择Normal.css(因为它应该)

然后它改为Print.css或Contrast.css(应该如此)

但那么它又不会再回归(不会选择)Normal.css吗?

你能帮我看一下代码有什么问题吗?

Lev*_*ith 6

 $("#StyleNormal").click(function() { 
       $("link[@media='screen']").attr("href", "Normal.css"); 
     }); 
Run Code Online (Sandbox Code Playgroud)

应该

 $("#StyleNormal").click(function() { 
       $("link[media='screen']").attr("href", "Normal.css"); 
     }); 
Run Code Online (Sandbox Code Playgroud)

另外,我会将您正在使用的jQuery版本更新为1.4.2

你使用[@media='screen']而不仅仅是[media='screen']

在jQuery 1.4.2(我认为在jQuery 1.3中)中@,不推荐使用属性选择.请注意,您在代码的前两次调用中使用它,而不是最后一次调用.:d