我有一系列类似的音乐:
var files=["song1.mp3","song2.mp3","song3.mp3", "song4.mp3"]
我希望在音频标签上显示所有内容,我已经完成了此操作,但它无法正常工作。
for (var in files){
$("body").append($("<audio> <source src="+"/audio/" + element" type='audio/mpeg'></audio>"));}
你能帮帮我吗?
答案 0 :(得分:2)
在此示例中,您的循环不正确。要循环遍历数组,您可以使用以下方法之一:
for循环使用数组长度:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/length
for (var i = 0; i < array.length; i++) { /* array[i] is your item */ }
Array.forEach:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
array.forEach(function(item) { /* item is your item */ }
:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of
for (item of array) { /* item is your item */ }
请注意,您必须检查最后两种方法支持的浏览器。
答案 1 :(得分:0)
在for循环中,您不需要包含变量声明。 你的循环应如下所示:
for(element in files)
{
$("body").append($("<audio> <source src='/audio/" + element + "' type='audio/mpeg'></audio>"));
}
注意我添加了额外的+符号并更改了src标记的括号顺序和类型。