【发布时间】:2013-02-25 11:58:41
【问题描述】:
我们有 addClass、removeClass、toggleClass
什么是jQuery等价于
document.getElementById("field").className=(someBoolean)?"pass":"fail";
但使用保留现有类的方法之一?
我认为最接近的不是那么优雅
$("#field")
.toggleClass("pass",someBoolean)
.toggleClass("fail",!someBoolean);
或者使用变量
$("#field")
.toggleClass(classWhenTrue,someBoolean)
.toggleClass(classWhenFalse,!someBoolean);
例子:
$(function() {
var pass = true;
$("#field")
.toggleClass("pass", pass)
.toggleClass("fail", !pass);
var classes = [...$("#field").get(0).classList];
console.log(classes)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input id="field" type="text" class="test fail done" />
【问题讨论】:
-
为什么双重
toggleClass不那么优雅?它比你得到的任何答案都更具可读性...... -
这是一个 5 年前的问题。我可能只是好奇:)