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吗?
你能帮我看一下代码有什么问题吗?
$("#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