Javascript 标记复选框时更改CSS样式表
我试图在HTML中创建一个复选框,使用JS将当前样式表更改为另一个样式表 在我选中复选框后,样式没有改变。 以下是我收到的错误消息: 以下是我编写的代码: HTML:Javascript 标记复选框时更改CSS样式表,javascript,html,checkbox,Javascript,Html,Checkbox,我试图在HTML中创建一个复选框,使用JS将当前样式表更改为另一个样式表 在我选中复选框后,样式没有改变。 以下是我收到的错误消息: 以下是我编写的代码: HTML: 正常标题 功能交换样式表(表){ if(document.getElementById(“lightSwitch”).checked==true){ document.getElementById(“pageStyle”).set.Attribute('href',sheet)=“dark.css”; } 否则{ docum
正常标题
功能交换样式表(表){
if(document.getElementById(“lightSwitch”).checked==true){
document.getElementById(“pageStyle”).set.Attribute('href',sheet)=“dark.css”;
}
否则{
document.getElementById(“pageStyle”).set.Attribute('href',sheet)=“style.css”;
}
}
谢谢你为我澄清这个问题。我想应该是这样的:
...
<script>
function swapStyleSheet() {
if (document.getElementById("lightSwitch").checked) {
document.getElementById("pageStyle").setAttribute('href', 'dark.css');
} else {
document.getElementById("pageStyle").setAttribute('href', "style.css");
}
}
</script>
</head>
<body>
<input onclick="swapStyleSheet()" id="lightSwitch" type="checkbox" name="lightSwitch">
</body>
。。。
函数交换样式表(){
if(document.getElementById(“lightSwitch”).已选中){
document.getElementById(“pageStyle”).setAttribute('href','dark.css');
}否则{
document.getElementById(“pageStyle”).setAttribute('href',“style.css”);
}
}
swapStyleSheet不会获取任何属性,因为您在调用它时没有属性onclick=“swapStyleSheet()”
setAttribute是接收2个属性的方法。您不能像这里那样将属性('href',sheet)=“style.css”分配给方法结果代码>
否则看起来不错(但没有测试)。您做错了: 这是您的代码(已解释)
功能交换样式表(表){
//这需要一个参数(我想是您想要的样式表)
if(document.getElementById(“lightSwitch”).checked==true){
document.getElementById(“pageStyle”).set.Attribute('href',sheet)=“dark.css”;//首先调用一个函数(错误的函数,因为它是setAttribute而不是set.Attribute),然后给它赋值“dark.css”
}
否则{
document.getElementById(“pageStyle”).set.Attribute('href',sheet)=“style.css”;
//这里也一样
}
}
您的代码看起来应该与此类似(有多种方法可以附加事件侦听器,但这与您的结构相同):
正常标题
功能交换样式表(表){
if(document.getElementById(“lightSwitch”).getAttribute('checked')==true){
document.getElementById(“pageStyle”).setAttribute('href',“dark.css”);
}
否则{
document.getElementById(“pageStyle”).setAttribute('href',“style.css”);
}
}
.set.Attribute
不是有效的JavaScript。使用.setAttribute
。此外,您不能设置属性,然后在同一行.set.Attribute('href',sheet)=“dark.css”
中分配属性。您在JavaScript函数函数swapStyleSheet(sheet)
中使用了一个参数,但在调用函数onclick=“swapStyleSheet()”
时没有对它做任何操作
由于.css
文件不共享,因此无法测试这一点。但请尝试将代码更改为:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Normal Title</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link id="pageStyle" rel="stylesheet" href="style.css">
<script>
function swapStyleSheet() {
if (document.getElementById("lightSwitch").checked == true) {
document.getElementById("pageStyle").setAttribute('href', "dark.css");
}
else {
document.getElementById("pageStyle").setAttribute('href', "style.css");
}
}
</script>
</head>
<body>
<input onclick="swapStyleSheet()" id="lightSwitch" type="checkbox" name="lightSwitch">
</body>
正常标题
函数交换样式表(){
if(document.getElementById(“lightSwitch”).checked==true){
document.getElementById(“pageStyle”).setAttribute('href',“dark.css”);
}
否则{
document.getElementById(“pageStyle”).setAttribute('href',“style.css”);
}
}
我清理了属性方法并删除了不需要的参数。希望这能帮你找到正确的方向。但是发生了什么?打字错误。它是一个属性:
setAttribute
不是set
的Attribute
。删除
Set attribute方法无效函数必须是setAttribute document.getElementById(“pageStyle”).setAttribute('href',sheet)=“dark.css”;“图纸”的定义或赋值在哪里。这是JavaScription的基础,在本例中,我没有使用它。我甚至可以从参数列表中删除它,因为他正在根据复选框状态决定要使用什么样式表。
<script>
function swapStyleSheet(sheet) {
// This is expecting a parameter (the stylesheet you want, I suppose)
if (document.getElementById("lightSwitch").checked == true) {
document.getElementById("pageStyle").set.Attribute('href', sheet) = "dark.css"; //Here you are, first, invoking a function (wrong function because it's setAttribute and not set.Attribute) and then assigning it a value "dark.css"
}
else {
document.getElementById("pageStyle").set.Attribute('href', sheet) = "style.css";
//Same here
}
}
</script>
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Normal Title</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link id="pageStyle" rel="stylesheet" href="style.css">
<script>
function swapStyleSheet(sheet) {
if (document.getElementById("lightSwitch").getAttribute('checked') === true) {
document.getElementById("pageStyle").setAttribute('href', "dark.css");
}
else {
document.getElementById("pageStyle").setAttribute('href', "style.css");
}
}
</script>
</head>
<body>
<input onclick="swapStyleSheet()" id="lightSwitch" type="checkbox" name="lightSwitch">
</body>
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Normal Title</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link id="pageStyle" rel="stylesheet" href="style.css">
<script>
function swapStyleSheet() {
if (document.getElementById("lightSwitch").checked == true) {
document.getElementById("pageStyle").setAttribute('href', "dark.css");
}
else {
document.getElementById("pageStyle").setAttribute('href', "style.css");
}
}
</script>
</head>
<body>
<input onclick="swapStyleSheet()" id="lightSwitch" type="checkbox" name="lightSwitch">
</body>