我有一些轨道的url列表。我想在html列表中显示每个曲目的持续时间。我可以设法从一个函数中获取持续时间值,但问题出现在循环的每一轮中,它会使用持续时间函数中的新值覆盖给定标记。所以整个列表都会反复更新。如何更新循环中的html标签的值而不会覆盖以前的轮次
var src1, src2, src3, trackArray;
src1 = "https://goo.gl/o4nxfq";
src2 = "https://goo.gl/wc1pgB";
src3 = "https://goo.gl/25uOY6";
trackArray = [src1, src2, src3];
function initAudioPlayer(){
\t $.each(trackArray, function(index, value) {
\t $(".panel").append(
\t "<li>Track #"+ index +" >> <span class='due'></span></li>"
);
getDuration(value, ".due");
\t });
}
function getDuration(src, destination) {
var audio = new Audio();
$(audio).on("loadedmetadata", function(){
$(destination).html(audio.duration);
});
audio.src = src;
}
$(document).ready(function(){
initAudioPlayer();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="panel"></ul>
正如你可以看到它显示上一轮循环的所有li
标签的价值。 任何想法解决它,所以它会显示列表中的实际值?
给每跨越一个唯一的类或ID的东西 - 然后使用,在 “目的地” 参数 –
雅becasue'“.due”'匹配所有...我会使用索引 –