我正在尝试循环数组。根据您从选择框中选择的选项,阵列将有所不同。我无法弄清楚如何选择要循环的数组。不起作用的位是每个循环内的'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++;
}
);
});
任何帮助都会很棒。
答案 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>