简要说明:不知道为什么我在SO/其他地方找不到这个问题。希望这不是个骗局。
问题:如何将至少两个类作为变量传递给toggleClass的jQuery?
在这个简单的片段中,如果我使用类名,它将完美地工作。
var varRed = "red", varUpper = "upper";
$("#test").on("click", function() {
$(this).toggleClass('red upper');
});
.red{color: red;}
.upper{text-transform: capitalize;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test">class toggle</div>
如何获得与$(this).toggleClass('red upper');
等价的变量,例如?
$(this).toggleClass(varRed varUpper);
后者会引发一个错误。
显然,我们可以做到:
$(this).toggleClass(varRed).toggleClass(varUpper);
但我正在努力理解为什么.toggleClass(“红色上半身”)起作用,而toggleClass(varRed varUpper)则不起作用。
提前谢谢你
发布于 2018-06-29 21:12:26
你需要用
$(this).toggleClass(varRed + ' ' + varUpper);
但我正在努力理解为什么.toggleClass(“红色上半身”)起作用,而toggleClass(varRed varUpper)则不起作用。
这就是在JavaScript中连接两个字符串的方式,这就是您基本上要做的事情。
您也可以传递一个数组,这可能是更好的语法。
$(this).toggleClass([varRed, varUpper])
https://stackoverflow.com/questions/51109343
复制相似问题