JavaScript包含-检查多个值

时间:2019-06-12 11:05:21

标签: javascript

当我有多个值(用逗号分隔)时,我刚刚发现我的.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检查一个或多个类的正确方法是什么?

3 个答案:

答案 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