Select 对象使用 jQuery 每个循环

Select object using jQuery each loop

我正在尝试设置一个变量来表示每个 class 的唯一音频对象,如下所示:

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。现在我只是在寻找一种方法来以更 dynamic/automatic 的方式完成它。

我没有为每个变量设置不同的变量,而是将它们放在一个数组中。

var audioFiles = [
  new Audio('1.wav'),
  new Audio('2.wav')
];

然后,您可以像这样访问它们:

audioFiles[0]

或者,

audioFiles[i]
var x = {
  0: new Audio('1.wav'),
  1: new Audio('2.wav')
}

$('.class').each(function(i) {
  var a = x[i];
  alert(a);
})

如果您确定要使用后续数字作为键并且任何数字都不会因某种原因被跳过,您也可以使用数组而不是对象。

您应该在添加它们时将它们推入数组 - 然后您可以按数组位置定位对象 - .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); 
});