我正在尝试设置一个变量来表示每个类的唯一音频对象,如下所示:
var x0 = new Audio('1.wav');
var x1 = new Audio('2.wav');
$('.class').each(function(i) {
var x = "x" + i;
alert(x);
//...code that is identically executed for each class using different audio clips...
});
上面的代码会生成一个警告,显示字符串" x1"而不是对象x1。
是否可以使用上述方法(或类似方法)将变量设置为等于对象?我知道var x = x1
正确地将变量x设置为对象x1。现在,我正在寻找一种以更动态/自动的方式实现这一目标的方法。
答案 0 :(得分:0)
不是为每个设置不同的变量,而是将它们放在一个数组中。
var audioFiles = [
new Audio('1.wav'),
new Audio('2.wav')
];
然后,你可以这样访问它们:
audioFiles[0]
或,
audioFiles[i]
答案 1 :(得分:0)
var x = {
0: new Audio('1.wav'),
1: new Audio('2.wav')
}
$('.class').each(function(i) {
var a = x[i];
alert(a);
})
如果您确定要将后续数字用作键,并且由于某种原因不会跳过任何数字,您也可以使用数组而不是对象。
答案 2 :(得分:-1)
您应该在添加它们时将它们推入数组中 - 然后您可以通过数组位置来定位对象 - 并且.each将按预期工作。每个都将引用数组中的对象 - 而不是单个字符串值。
var audiofiles = [];
var x0 = new Audio('1.wav');
var x1 = new Audio('2.wav');
audiofiles.push(x0);
audiofiles.push(x1);
audiofiles.each(function(i) {
alert(i);
});