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
属性是无效的。您是否尝试过我下面的答案?请让我知道。ThanksEachid
在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
}