有没有 ? Javascript中的条件测试,如C#?

时间:2012-03-03 09:30:54

标签: javascript jquery

我有以下内容:

var isChecked = $('#htmlEdit').is(":checked");

但我真的不需要变量isChecked,我想要做的是为一个名为“action”的变量赋值,这样如果上面右边的测试为真,那么

var action = "Editing HTML" 

如果不是那么

var action = "Editing"

如果不使用if-else?

,是否有一种干净的方法可以做到这一点

6 个答案:

答案 0 :(得分:7)

是的,有:

var action = $('#htmlEdit').is(":checked") ? "Editing HTML" : "Editing";

Conditional operator on MDN

答案 1 :(得分:3)

是的,Javascript有一个conditional operator。你应该可以写:

var action = $('#htmlEdit').is(":checked") ? "Editing HTML" : "Editing";

(你在问这个问题之前试过这个吗?)

答案 2 :(得分:2)

var result = someCondition == true ? "state 1" : "state 2";

// the first operand must evaluate to a boolean
var result = someCondition ? "state 1" : "state 2"; // shortened
var result = a == b ? "state 1" : "state 2"; // arbitrary condition

这是ternary operator,在JavaScript中的行为与大多数/所有c风格的语言相同。

答案 3 :(得分:1)

var action = isChecked ? "Editing HTML" : "Editing";

答案 4 :(得分:0)

?也称为ternary operator

这更像是一种语言结构,而不是框架内容。

C#languageJquery是基于framework(语言)的Javascript版本。

并且Javascript语言和大多数语言(C, C++, C#, Java, Javascript)都支持此运算符。

答案 5 :(得分:0)

是的,您可以使用条件运算符:

var variableToBeAssigned = conditiontoBechecked ? valueTobeAssignedONSucessOfCondition : valueToBeassignedONFailureOfCondition;

在您的情况下,您可以使用:

var action = $('#htmlEdit').is(':checked') ? 'Editing HTML' : 'Editing';