jquery中的数组和循环

时间:2011-05-19 10:32:43

标签: javascript jquery arrays

嘿所有,我基本上需要在select中为每个<option>添加一个类。根据每个选项的value,可以应用不同的类。

我需要一种简单的方法来做类似

的事情
$('select option').each(function(){

       if($(this).val()=="Argentina"){  $(this).addClass("ar");  }
       if($(this).val()=="Brazil"){  $(this).addClass("br");  }
       if($(this).val()=="Czech"){  $(this).addClass("cz");  }

});

我有很长的国家/地区列表,因此最好使用某种数组,然后让功能过滤到if value =class name

非常感谢

2 个答案:

答案 0 :(得分:8)

当然,使用关联数组:

var mapping = { "Argentina": "ar", "Brazil": "br", "Czech": "cz"};
$('select option').each(function(){
   var sClass = mapping[$(this).val()];
   if (sClass)
      $(this).addClass(sClass);
});

当您忘记将国家/地区放入数组时,if (sClass)可以避免崩溃。在这种情况下,您可以添加一些默认类。

答案 1 :(得分:2)

如果该示例中的模式(该类只是小写中的前两个字符),则只是一个额外的意见。

$('select option').each(function(){
  $(this).addClass( this.value.substr(0,2).toLowerCase() );
});