如何使用条件运算符来分配ID?

时间:2018-05-24 21:26:31

标签: javascript jquery if-statement conditional-operator

我在一个页面上有四个表单,我想为所有表单分配一个密码验证功能。我想获取当前密码字段的ID并进行进一步验证。

我得到了当前输入密码字段的ID,如下所示:

var id = $(this).attr('id');

现在我想使用三元if来检查ID并为变量赋值。例如:

var a
if id==1
  a= "a";
else if id==2
  a= "b";
else if id==3
  a = "c"
else if id==4
  a = "d"

感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

通过三元运算符,您指的是这个:

var value = (condition) 
    ? 'result if condition is true' 
    : 'result if condition is false';

我认为使用对象或switch应该更清楚。

例如:

var values = {
    1: 'a',
    2: 'b',
    3: 'c',
    4: 'd',
}

var id = $(this).attr('id');
var result = values[ id ] ? values[ id ] : 'default';

// Alternative syntax using the || operator
var result = values[ id ] || 'default';

使用switch声明。

var id = $(this).attr('id');
var result = getValue( id );

function getValue( id ) {
    switch( id ) {
        case 1: return 'a';
        case 2: return 'b';
        default: return 'default value';
    }
}

答案 1 :(得分:0)

如果你真的想使用三元运算符:

var id = $(this).attr('id');
var a = (id==1) ? "a" : (id==2) ? "b" : (id==3) ? "c" : (id==4) ? "d" : undefined;

虽然如果你需要使用switch对同一个变量做几次这样的比较,那将是一个更好的选择:

var a;
switch ($(this).attr('id')) {
  case 1:
    a = "a";
    break;
  case 2:
    a = "b";
    break;
  case 3:
    a = "c";
    break;
  case 4:
    a = "d";
    break;
}

如果id的值实际上是连续的数字,你甚至可以使用数组:

var id = $(this).attr('id');
var a = [, "a", "b", "c", "d"][+id];

答案 2 :(得分:-1)



def act(cntnt):
    def do_thing(cntnt):
        return(cntnt + "has it")
    def do_other_thing(cntnt):
        return(cntnt + "nope")
    has_abc = cntnt.str.contains.contains("abc")
    if has_abc == T:
        cntnt[has_abc].apply(do_thing)
    else:
        cntnt[has_abc].apply(do_other_thing)

var something = ["a", "b", "c", "ddddd"];

$("form").on("submit", function(evt) {

  evt.preventDefault();
  
  var $password = $(this).find("[name='password']");
  var bla = something[ +$password[0].id - 1 ]; // -1 since it's index (0) based
  
  console.log(bla)
  

});