JavaScript初学者在这里。我本质上是想进行简单的切换。如果元素为黑色,则将其更改为白色。如果是白色,请将其更改为黑色。
function changeClass() {
if (document.getElementById('myButton').style.backgroundColor == "white") {
document.getElementById('myButton').style.backgroundColor = "black";
} else {
document.getElementById('myButton').style.backgroundColor = "white";
}
}
<button class="normal" id="myButton" onclick='changeClass()' >Change Colour</button>
虽然此代码非常混乱。有一个更好的方法吗?
答案 0 :(得分:5)
切换课程:
function changeClass(){
document.getElementById('myButton').classList.toggle("the-class");
}
您的CSS所在的位置
.the-class {
background-color: black;
}
...假设元素的正常背景颜色为白色。
有关classList
here的更多信息。支持很好,但是在较旧的环境中可能需要使用polyfill。
示例:
function changeClass() {
document.getElementById('myButton').classList.toggle("the-class");
}
.the-class {
background-color: black;
}
<button class="normal" id="myButton" onclick='changeClass()'>Change Colour</button>
答案 1 :(得分:4)
您可以使用classList.toggle()
document.querySelector('#myButton').addEventListener('click',e => {
e.target.classList.toggle('black')
})
.black{
background:black
}
<button class="normal" id="myButton">Change Colour</button>
答案 2 :(得分:2)
使用类似classList.toggle()
function switchColor(){
document.getElementById("resultDiv").classList.toggle("toggle")
}
.element {
height: 100px;
width: 100px;
background-color: red;
}
.element.toggle{
background-color: blue !important;
}
<button onclick="switchColor()">Click me</button>
<div id="resultDiv" class="element toggle"></div>
答案 3 :(得分:2)
您可以在CSS中创建一些特定的类(例如,包含.black
规则的background-color: black;
类),然后根据您的条件附加/分离该类。
您的DOM元素(HTML标记)具有方便的classList
属性,可以将其视为附加到此DOM的类的列表。我建议多读一些here。
总体而言,您的函数可以这样写:
const element = document.getElementById("coolDiv");
element.classList.contains('black')) {
element.classList.remove('black')
} else {
element.classList.add('black')
}
甚至更简单的使用三元运算符
const element = document.getElementById("coolDiv");
element.classList.contains('black') ?
element.classList.remove('black') : element.classList.add('black')
或仅具有相同toggle
属性的classList
函数
const element = document.getElementById("coolDiv");
element.classList.toggle('black')
希望有帮助!干杯!
答案 4 :(得分:1)
如果是白色,则不是可以使用的默认颜色?运算符:
let btn = document.getElementById('myButton');
btn.style.backgroundColor = btn.style.backgroundColor === 'white' ? 'black' : 'white';
答案 5 :(得分:0)
此操作不需要外部javascript,您可以在此处编写简单的嵌入式javascript代码:
.black-button {
background: black;
color: #fff;
outline: 0;
padding: 20px;
}
button {
transition: 0.3s;
cursor: pointer;
}
<button class="normal" onclick="this.classList.toggle('black-button')">Change Colour</button>