Jquery,循环遍历数组

时间:2011-04-29 14:55:27

标签: jquery arrays dynamic

我正在尝试循环数组。根据您从选择框中选择的选项,阵列将有所不同。我无法弄清楚如何选择要循环的数组。不起作用的位是每个循环内的'arrValues + thisId'。

$('.guestLists').change( function() { 
 var thisId = $(this).val();
 var myCounter = parseInt(1);

 var arrValues0 = [ "", "", "", "" ];
 var arrValues1 = [ "1", "1", "1", "1" ];   
 var arrValues2 = [ "2", "2", "2", "2" ];
 // Loop over each value in the array.

 $.each(
  arrValues+thisId,
  function( intIndex, objValue ){
  $('#guestListName'+myCounter).attr('value',objValue);
  myCounter++;
  }
 );
});

任何帮助都会很棒。

3 个答案:

答案 0 :(得分:0)

您可以使用窗口[“foobar”],例如window["arrValues"+thisId],但使用Hannes所说的多维数组是最好的方法。

答案 1 :(得分:0)

如果要在运行时构造变量名,请使用eval

$.each(
 eval("arrValues"+thisId),
 ...

确保其参数的安全性,特别是如果它以某种方式依赖于外部/用户输入。在上面的例子中,如果thisId是一个整数,那么一切都应该没问题。

答案 2 :(得分:0)

这就是你如何访问多维数组

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <div id="foo">
        <select class="guestLists">
          <option value="0">0</option>
          <option value="1">1</option>
          <option value="2">2</option>
        </select>
        <div id="stuff"></div>
    </div>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script>  
    $('document').ready(function(){
        var Values = Array();
        Values[0] = [ "", "", "", "" ];
        Values[1] = [ "1", "1", "1", "1" ];
        Values[2] = [ "2", "2", "2", "2" ];

        $('.guestLists').change( function() { 
            var thisId = $(this).val();

            $.each(
                Values[thisId],
                function( intIndex, objValue ){
                    $('div#stuff').append(objValue + ', ');
                }
            );
        });
    });

    </script> 
</body>
</html>