Javascript jQuery选择器不是字符串

Javascript jQuery选择器不是字符串,javascript,jquery,Javascript,Jquery,我正在编写一个生成字符串选择器的方法,用于绑定元素上的input事件 我面临一个小问题,目前我的代码工作正常,但并不完美。 如果not_validated=true,则valid/invalid的值无关紧要,因为我的选择将选择它们。我正在寻找一种排除具有某些类的元素的方法。请参阅源代码中的TODO。可能是^或

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

我面临一个小问题,目前我的代码工作正常,但并不完美。 如果
not_validated=true
,则
valid/invalid
的值无关紧要,因为我的选择将选择它们。我正在寻找一种排除具有某些类的元素的方法。请参阅源代码中的
TODO
。可能是
^或$.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;
};
简单使用


您可能对选择器或方法感兴趣。请参阅
.not()
。在您的案例中使用的是
$('[data validate]')。而不是('.INPUT\u SUCCESS\u CLASS、.INPUT\u ERROR\u CLASS')
谢谢,非常简单。
selector += '[data-validate]:not(.' + INPUT_SUCCESS_CLASS + ', .' + INPUT_ERROR_CLASS + ')';