理解jQuery语法?:

the*_*dad 1 javascript scripting jquery

我想了解什么?并且:在这段代码中,我在代码中看到了很多,但我永远无法理解它到底在做什么?

有人可以指出我正确的方向,这段代码来自jQuery validate()DOCS

$(".selector").validate({
  invalidHandler: function(event, validator) {
    // 'this' refers to the form
    var errors = validator.numberOfInvalids();
    if (errors) {
      var message = errors == 1
        ? 'You missed 1 field. It has been highlighted'
        : 'You missed ' + errors + ' fields. They have been highlighted';
      $("div.error span").html(message);
      $("div.error").show();
    } else {
      $("div.error").hide();
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

win*_*wes 5

的?:不是jquery,只是vanilla javascript.它被称为条件(三元)运算符,可用作标准if/else语句的简写:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Conditional_%28ternary%29_operator

基本上它说

val = (boolean expression)? (val if boolean is true) : (val if boolean is false)
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下,它说message等于'You missed 1 field. It has been highlighted'if errors == 1是真的,否则message等于'You missed ' + errors + ' fields. They have been highlighted'.

  • 是的,就是这样.您可以将它用作基于if else条件为变量赋值的更简便方法. (2认同)