Mootools数组的访问元素

时间:2011-08-22 08:48:58

标签: javascript html mootools

我正在使用一些Mootools来访问HTML select元素的值,但问题是使用Mootools [.getSelected()]的方式返回一个数组,我不知道如何处理它

我的代码:

<script type="text/javascript">
  window.addEvent('domready', function(){
    $('votconj').addEvent('click', function() {
      // This works great 
      $('jj_conjoint').addClass("validate['required']");
      $('mm_conjoint').addClass("validate['required']");
      $('aaaa_conjoint').addClass("validate['required']");
      $('conjoint_regime').addClass("validate['required']");
      new FormCheck('form');
    });
    if ($('nb_children').getSelected() == 1){
     // this doesn't work because .getSelected() returns an array and never equals 1
     $('jj_enfant1').addClass("validate['required']");
     $('mm_enfant1').addClass("validate['required']");
     $('aaaa_enfant1').addClass("validate['required']");
     new FormCheck('form');
    }
    if ($('nb_children').getSelected() == 2){
     // this doesn't work because .getSelected() returns an array and never equals 2 
     $('jj_enfant2').addClass("validate['required']");
     $('mm_enfant2').addClass("validate['required']");
     $('aaaa_enfant2').addClass("validate['required']");
     new FormCheck('form');   
    }

    new FormCheck('form');
}); 

</script>

3 个答案:

答案 0 :(得分:1)

getSelected()返回一个数组,因为某些select元素允许多个选择。如果你没有,你可以尝试$('nb_children').getSelected()[0]。要获得该值,您可以使用$('nb_children').getSelected()[0].get("value")

答案 1 :(得分:0)

您想检查所选项目的值,对吗?

尝试:

if ($('nb_children').getSelected().get('value') == 1){//...

答案 2 :(得分:0)

您可以使用.each遍历MooTools中的数组:

var selected = $('nb_children').getSelected();

selected.each(function(element) {
  var val = element.get('value');

  $('jj_enfant' + val).addClass("validate['required']");
  //etc
}

new FormCheck('form');

了解更多信息:http://mootools.net/docs/core/Types/Array#Array:each

getSelected()始终返回数组的原因是,当您决定添加多个可选项而不是一个时,可以始终重复使用此类代码。

修改

请注意,上面的代码是直接编写的。可能需要进行一些调整以使其适合您的情况。

修改2

将代码更新为更全面的示例。