了解 jQuery 语法? :
understanding jQuery syntax ? :
我想了解什么?和 : 在这段代码中做了什么,我在代码中看到了很多,但我永远无法理解它到底在做什么?
有人能给我指出正确的方向吗,这段代码来自 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();
}
}
});
那个? : 不是 jquery,只是香草 javascript。它称为条件(三元)运算符,可用作标准 if/else 语句的 shorthand: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)
因此在您的情况下,如果 errors == 1
为真,则 message
等于 'You missed 1 field. It has been highlighted'
,否则 message
等于 'You missed ' + errors + ' fields. They have been highlighted'
。
这是条件(三元)运算符,它是标准 if/else 语句的快捷方式。
这里有一个示例来演示:
var grade = 85;
console.log("You " + (grade > 50 ? "passed!" : "failed!"));
//Output: You passed!
/* The above statement is same as saying:
if(grade > 50){
console.log("You " + "passed!"); //or simply "You passed!"
}
else{
console.log("You " + "failed!");
}
*/
var errors = 1;
// define `message`
// if `errors == 1`
var message = errors == 1
// `errors == 1`
? 'You missed 1 field. It has been highlighted'
// `errors != 1`
: 'You missed ' + errors + ' fields. They have been highlighted';
console.log(message)
Conditional (ternary) Operator
问号前的第一部分是您要计算的表达式。问号之后和冒号之前的第二部分是 true-clause。冒号后的第三部分是假从句。
我想了解什么?和 : 在这段代码中做了什么,我在代码中看到了很多,但我永远无法理解它到底在做什么?
有人能给我指出正确的方向吗,这段代码来自 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();
}
}
});
那个? : 不是 jquery,只是香草 javascript。它称为条件(三元)运算符,可用作标准 if/else 语句的 shorthand: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)
因此在您的情况下,如果 errors == 1
为真,则 message
等于 'You missed 1 field. It has been highlighted'
,否则 message
等于 'You missed ' + errors + ' fields. They have been highlighted'
。
这是条件(三元)运算符,它是标准 if/else 语句的快捷方式。
这里有一个示例来演示:
var grade = 85;
console.log("You " + (grade > 50 ? "passed!" : "failed!"));
//Output: You passed!
/* The above statement is same as saying:
if(grade > 50){
console.log("You " + "passed!"); //or simply "You passed!"
}
else{
console.log("You " + "failed!");
}
*/
var errors = 1;
// define `message`
// if `errors == 1`
var message = errors == 1
// `errors == 1`
? 'You missed 1 field. It has been highlighted'
// `errors != 1`
: 'You missed ' + errors + ' fields. They have been highlighted';
console.log(message)
Conditional (ternary) Operator
问号前的第一部分是您要计算的表达式。问号之后和冒号之前的第二部分是 true-clause。冒号后的第三部分是假从句。