Javascript 仅当其他类没有';不存在

Javascript 仅当其他类没有';不存在,javascript,Javascript,我这里有这个javascript if (stepNumber < $steps.length) { $($steps[stepNumber + 1]).addClass('--active'); } if(步数

我这里有这个javascript

  if (stepNumber < $steps.length) {
    $($steps[stepNumber + 1]).addClass('--active');
  }
if(步数<$steps.length){
$($steps[stepNumber+1]).addClass('--active');
}
但是,如果--complete已经在类中,我不希望添加该类


有人能给我指出正确的方向吗?我在想如果(!.--complete)或者类似的东西会是

你可以用
#hasClass()检查它是否有那个类。

if(步数<$steps.length){
var$step=$($steps[stepNumber+1]);
if(!$step.hasClass('--complete')){
$step.addClass('--active');
}
}

您可以使用
#hasClass()
检查它是否有该类:

if(步数<$steps.length){
var$step=$($steps[stepNumber+1]);
if(!$step.hasClass('--complete')){
$step.addClass('--active');
}
}

我怀疑你正在做一些你以后会后悔的事情。您正在使用UI装饰作为参考数据源,如果继续这种做法,可能会在以后将UI与数据同步时造成混乱

我建议您使用数据源来跟踪控件的经验状态,以确定控件是完整的还是活动的,并始终从数据中绘制控件集更新。此数据集可以是本地的,也可以是远程的


当您将来需要进行修改时,将其分离可确保有限数量的编码触点。此外,如果您将所有UI更新抽象为一个函数,该函数始终位于数据和显示之间,并根据数据的更改全权负责更新显示,那么当您需要添加第三或第四个类时,您将只有一个地方可以返回。

我怀疑您正在做一些您以后会后悔的事情。您正在使用UI装饰作为参考数据源,如果继续这种做法,可能会在以后将UI与数据同步时造成混乱

我建议您使用数据源来跟踪控件的经验状态,以确定控件是完整的还是活动的,并始终从数据中绘制控件集更新。此数据集可以是本地的,也可以是远程的

当您将来需要进行修改时,将其分离可确保有限数量的编码触点。此外,如果您将所有UI更新抽象为一个函数,该函数始终位于数据和显示之间,并根据对数据的更改全权负责更新显示,那么当您需要添加第三或第四个类时,您将只有一个地方可以返回。

这很容易。
$($steps[stepNumber+1])。而不是('.--complete').addClass('--active')它与
$($steps[stepNumber+1])一样简单。不('.--complete')。addClass('--active')
if (stepNumber < $steps.length) {
    var $step = $($steps[stepNumber + 1]);
    if (!$step.hasClass('--complete')) {
        $step.addClass('--active');
    }
}