Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击后,需要将我的页面上各个开/关按钮的颜色从绿色更改为红色_Javascript_Html_Css - Fatal编程技术网

Javascript 单击后,需要将我的页面上各个开/关按钮的颜色从绿色更改为红色

Javascript 单击后,需要将我的页面上各个开/关按钮的颜色从绿色更改为红色,javascript,html,css,Javascript,Html,Css,我的网页上有几个按钮,每个按钮都是一个开或关的选项,所以默认情况下它们是绿色的(开),但单击后我希望它们是红色的(关)。我能够让它工作,但只有一个按钮会改变颜色,不管我点击哪个按钮。这是我的密码 功能切换按钮(){ var元素=document.getElementById(“btn”); 元素.classList.toggle(“btn关闭”); } A. B C D 更改 onclick="toggleButton()" 到 然后将方法更改为 function toggleButton

我的网页上有几个按钮,每个按钮都是一个开或关的选项,所以默认情况下它们是绿色的(开),但单击后我希望它们是红色的(关)。我能够让它工作,但只有一个按钮会改变颜色,不管我点击哪个按钮。这是我的密码

功能切换按钮(){
var元素=document.getElementById(“btn”);
元素.classList.toggle(“btn关闭”);
}

A.
B
C
D
更改

onclick="toggleButton()"

然后将方法更改为

function toggleButton(button) {
    button.classList.toggle("btn-off");
  }
你的问题的一部分是你在重复ID。但是对于您正在执行的操作,如果您传入单击的元素,则不需要ID。

更改

onclick="toggleButton()"

然后将方法更改为

function toggleButton(button) {
    button.classList.toggle("btn-off");
  }

你的问题的一部分是你在重复ID。但是,对于您正在执行的操作,如果传入单击的元素,则不需要ID。

请测试以下代码:

html

js


请测试以下代码:

html

js


如果按钮数量有限,您可以选择快捷方式:

HTML:


但是如果有大量按钮,则应该在Javascript中动态创建id,并使用单击的按钮id更改其颜色

如果按钮数量有限,可以选择快捷方式:

HTML:


但是如果有大量按钮,则应该在Javascript中动态创建id,并使用单击的按钮id更改其颜色

您只需在
jQuery
上执行此操作,即可解决您的问题。谢谢

$(文档).ready(函数(){
$(“.option btn”)。在(“单击”,函数(){
如果($(此).hasClass(“btn关闭”)){
$(此).addClass(“btn on”);
$(此).removeClass(“btn关闭”);
}否则{
$(此).removeClass(“btn on”);
$(此).addClass(“btn关闭”);
}
});
});
.btn关闭{
背景色:#EFF0F1;
}
.btn on{
背景颜色:绿色;
}

A.
B
C
D

您只需在
jQuery
上执行此操作,即可解决您的问题。谢谢

$(文档).ready(函数(){
$(“.option btn”)。在(“单击”,函数(){
如果($(此).hasClass(“btn关闭”)){
$(此).addClass(“btn on”);
$(此).removeClass(“btn关闭”);
}否则{
$(此).removeClass(“btn on”);
$(此).addClass(“btn关闭”);
}
});
});
.btn关闭{
背景色:#EFF0F1;
}
.btn on{
背景颜色:绿色;
}

A.
B
C
D

这里有一种不同的方法。您不应该有多个重复的
id
属性,因此我将使用
切换按钮
类作为目标

每个按钮都以
btn on
类开始,因为您提到默认情况下希望它们打开。单击一个将切换该类。如果没有它,它会回到“关闭”状态,样式为红色

$(文档).ready(函数(){
$('.toggle button')。打开('单击',函数(){
$(this.toggleClass('btn-on');
});
});
。切换按钮{
背景色:红色;
}
.toggle-button.btn-on{
背景颜色:绿色;
}

A.
B
C
D

这里有一种不同的方法。您不应该有多个重复的
id
属性,因此我将使用
切换按钮
类作为目标

每个按钮都以
btn on
类开始,因为您提到默认情况下希望它们打开。单击一个将切换该类。如果没有它,它会回到“关闭”状态,样式为红色

$(文档).ready(函数(){
$('.toggle button')。打开('单击',函数(){
$(this.toggleClass('btn-on');
});
});
。切换按钮{
背景色:红色;
}
.toggle-button.btn-on{
背景颜色:绿色;
}

A.
B
C
D

每个
id
在HTML中必须是唯一的。在同一文档中有两个相同的
id
属性是无效的。您是否尝试过我下面的答案?请让我知道。ThanksEach
id
在HTML中必须是唯一的。在同一文档中有两个相同的
id
属性是无效的。您是否尝试过我下面的答案?请让我知道。谢谢
.color-red{
    background-color:red;
    width:100px;
    height:100px;
}
.color-blue{
    background-color:blue;
    width:100px;
    height:100px;
}
function changeColor(){
    document.getElementById("test-div").classList.remove('color-red');
    document.getElementById("test-div").classList.add('color-blue');
}
<div class="key">
  <button id="btn1" class="option-btn" onclick="toggleButton(1)">A</button>
</div>
<div class="key">
  <button id="btn2" class="option-btn" onclick="toggleButton(2)">B</button>
</div>
<div class="key">
  <button id="btn3" class="option-btn" onclick="toggleButton(3)">C</button>
</div>
<div class="key">
  <button id="btn4" class="option-btn" onclick="toggleButton(4)">D</button>
</div>
  function toggleButton(n) {
    var element = document.getElementById('btn' + n);
    element.style.color = 'red'; //OR YOUR TOGGLE CLASS
  }