仅当其他类不存在时才添加类

时间:2015-10-12 14:24:20

标签: javascript

我这里有这个javascript

  if (stepNumber < $steps.length) {
    $($steps[stepNumber + 1]).addClass('--active');
  }

但是,如果--complete已经在其上,我不想要添加课程。

有人能指出我正确的方向吗?我以为它会是if (!.--complete)或类似的东西?

2 个答案:

答案 0 :(得分:4)

您可以使用#hasClass()

检查是否有该课程
if (stepNumber < $steps.length) {
    var $step = $($steps[stepNumber + 1]);
    if (!$step.hasClass('--complete')) {
        $step.addClass('--active');
    }
}

答案 1 :(得分:1)

我怀疑你做的事情后来会后悔。您正在使用您的UI装饰作为参考数据源,如果您继续这种做法,这可能会在以后使您的UI与数据同步时变得一团糟。

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

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