当我有多个值(用逗号分隔)时,我刚刚发现我的.contains
无法正常工作。
var checkMenu = document.getElementById('primary-header');
var primaryHeaderClasses = checkMenu.classList;
switch( true ) {
case primaryHeaderClasses.contains('primary-header--center-logo-center-menu, primary-header--left-logo-secondary-menu'):
如果我删除包含中的第二个类,它将正常工作:
switch( true ) {
case primaryHeaderClasses.contains('primary-header--center-logo-center-menu'):
执行.contains
检查一个或多个类的正确方法是什么?
答案 0 :(得分:2)
如果您希望在存在任何一个类的情况下执行X操作,为什么不这样做?
var activeCell = context.workbook.getActiveCell();
activeCell.load("address");
添加if(primaryHeaderClasses.contains('primary-header--center-logo-center-menu') || primaryHeaderClasses.contains('primary-header--left-logo-secondary-menu')) {
// Do stuff
}
就是说“如果这是正确的,请执行X”。
如果您精通JQuery和JavaScript,则可以使用以下形式:
||
希望它能对您有所帮助!
答案 1 :(得分:0)
包含不支持多个值的内容,您应该进行循环并检查每个条目的值。据我所知,这是您可以执行此操作的唯一方法。
答案 2 :(得分:0)
您可以使用.some()
来完成此操作。
本质上,.some()
的作用是使用函数检查数组的每个元素,如果任何元素返回true,则返回true。否则,它返回false。
您要使用的情况
['primary-header--center-logo-center-menu', 'primary-header--left-logo-secondary-menu'].some(e => primaryheaderClasses.contains(e))
,并且只有当primaryHeaderClasses包含数组的任何元素e
时,此方法才返回true。
这也适用于所有浏览器 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)