数组中的 JavaScript 对象
Javascript Objects in Arrays
我正在尝试使用Ajax文件上传,如下所示:http://valums.com/ajax-upload/
如您所见,我需要创建一个 qq。文件上传器对象来初始化脚本。但是,我需要能够在不知道元素 ID 的情况下动态创建此对象。我尝试创建这样的东西:
var uploader, i = 0;
$(".file-upload").each(function() {
$e = $(this);
i++;
uploader[i] = new qq.FileUploader({
element: $(this)[0],
action: 'uploadfile.php',
allowedExtensions: ['doc', 'docx', 'pdf'],
multiple: false,
onComplete: function(id, fileName, responseJSON) {
$($e).siblings('input').val(responseJSON.newfilename);
}
});
});
我了解到我添加的[i]
部分会破坏脚本,因为我不能在数组中包含对象。
有没有其他方法可以动态创建此对象?它们都需要有一个唯一的名称,否则 onComplete
函数将被覆盖。我尝试使用eval()
,但我似乎无法使其正常工作。
您必须先将uploader
声明为数组:
var uploader = [];
因为您声明了变量而没有定义它,所以它的默认值为 undefined
,并且您的代码被转换为类似 undefined[i]
的内容,从而触发错误。
必须是这样的
var uploader = {};
否则上传者为空,您无法为其分配任何内容。
编辑:
所以有两个反对意见,在我看来,如果一个人想要有一个数组,那么声明一个数组是有意义的,var uploader = [];
然后使用 uploader.push()
方法或将其定义为对象var uploader = {};
然后只做uploader[i] = ...
。
也可以使用 a 数组执行后者,但在后一种情况下,我认为维护计数器 ( i
) 没有意义。
相关文章:
- 面向对象JavaScript中的私有函数
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 将字符串转换为对象 javascript/jquery
- 正在检查对象javascript中是否存在嵌套属性
- 时间-日期对象JavaScript getUTCMilliseconds
- 仅在对象(javascript)中解析值
- 使用对象(JavaScript或jQuery)填充选择下拉列表
- 引用另一个对象javascript中的对象
- 如何删除列表中的对象?Javascript nodejs和下划线
- 无法从日期对象javascript获取日期和月份
- 如何在if语句中使用对象-Javascript
- 对象javascript错误
- 对象Javascript的少数实例
- 位置对象Javascript
- 将字符串传递到对象javascript中
- 获取对象Javascript或jQuery的最后一个值
- 鼠标接近对象Javascript
- 这个mixins代码是书中的错误吗;面向对象JavaScript的原理”;
- 使用闭包编译器编写更好的面向对象JavaScript完整示例代码
- 访问对象javascript数组中的对象属性值