我想在 for 循环中创建多个 DataTransfer 对象然后使用它们。但它不起作用。
var cars = ["test1", "test2", "test3", "test4"];
for(let i = 0; i < cars.length; i++) {
var cars[i] = new DataTransfer();
}
这显示:
Uncaught SyntaxError: Unexpected token '['
然后我想根据 id 或类来使用它们,例如:
<span id="testing" value="test1"></span>
var f = new File([""], "filename.txt", {type: "text/plain"})
$("#testing").attr('value').items.add(f);
通过上面我得到这个错误:
Cannot read properties of undefined (reading 'add')
我不知道我错过了什么。预先感谢!
This is showing: Uncaught SyntaxError: Unexpected token '['
问题是你在 for 循环中的语句
var cars = ["test1", "test2", "test3", "test4"];
for(let i = 0; i < cars.length; i++) {
// You are trying to declare a variable name here, and brackets are not valid characters in variable names
var cars[i] = new DataTransfer();
}
如果您只是尝试设置数组每个索引处的值,则可以直接设置它们而无需声明变量:
var cars = ["test1", "test2", "test3", "test4"];
for(let i = 0; i < cars.length; i++) {
cars[i] = new DataTransfer();
}
With above I get this error : Cannot read properties of undefined (reading 'add')
这是因为你的跨度的值是一个字符串“test1”,它没有名为 items 的方法/属性。我只能猜测您正在尝试在那里使用 DataTransfer 对象,因此您需要以不同的方式访问它。也许在你的 JavaScript 中你可以设置一个带有键的对象来访问你的对象:
var cars = ["test1", "test2", "test3", "test4"];
var dataTransfers = {};
for(let i = 0; i < cars.length; i++) {
// dataTrasnfers.test1 = new DataTransfer() when i = 1
dataTransfers[cars[i]] = new DataTransfer();
}
从那里开始,
dataTransfers.test1, dataTransfers.test2, dataTransfers.test3, dataTransfers.test4
都是有效的。您可以继续从跨度值中获取这些名称。