jQuery选择器不作为字符串

时间:2014-04-04 13:51:25

标签: javascript jquery

我正在编写一个生成字符串选择器的方法,用于绑定元素上的input事件。

我面临一个小问题,因为现在我的代码工作但不完美。 如果not_validated = truevalid/invalid的值无关紧要,因为我的选择无论如何都会选择它们。我正在寻找一种方法来排除有一些类的元素。请参阅源代码中的TODO。可能与^ or !有关,但我只知道使用$.hasClass等方法的方式。

FormValidator.prototype.defaultOptions = {
  // Performs live validation, on value change.
  live: {
    not_validated: true,
    valid: true,
    invalid: true
  }
};

// Stuff ...

FormValidator.prototype._generateSelectorOnInput = function() {
  var selector = '';

  if(this.options.live && this.options.live.not_validated){
    selector += '[data-validate]'// TODO: Need to exclude the selector that have INPUT_SUCCESS_CLASS or INPUT_ERROR_CLASS !
  }

  if(this.options.live && this.options.live.valid){
    selector += (selector.length ? ', ' : '') + '[data-validate].' + INPUT_SUCCESS_CLASS
  }

  if(this.options.live && this.options.live.invalid){
    selector += (selector.length ? ', ' : '') + '[data-validate].' + INPUT_ERROR_CLASS
  }

  return selector;
};

1 个答案:

答案 0 :(得分:1)

只需使用:not()

即可
selector += '[data-validate]:not(.' + INPUT_SUCCESS_CLASS + ', .' + INPUT_ERROR_CLASS + ')';