需要显示 javascript 数组的不同部分

need to display different parts of a javascript array

你好,我正在尝试制作一个音乐播放器,它可以通过 javascript 播放网站上的歌曲。

我在尝试对数组进行切片以取出歌曲时遇到问题。

var 文件 = ["roc-boys.mp3", // - Jay Z "dirt.mp3", //- 周杰伦 "99.mp3", // - Jay Z "feelin-it.mp3", // - 周杰伦 ];

这就是我布置数组的方式。

function createAudioElements() {
     files = files.slice(5,9);
    for (f in files) {
        var audioString = "<audio id=\"audio-" + f + "\" class=\"audio\" preload=\"true\"><source src=\"audio/" + files[f] + "\"></audio>";



function createAudioElements() {
           files = files.slice(5,9);
           for (f in files) {
           var audioString = "<audio id=\"audio-" + f + "\" class=\"audio\" preload=\"true\"><source src=\"audio/" + files[f] + "\"></audio>";

        $("#audio-players").append(audioString);

    }
}


    function createAudioPlayers() {
    for (f in files) {
        var playerString = "<div id=\"audioplayer-" + f + "\" class=\"audioplayer\"><button id=\"playbutton-" + f + "\" class=\"play playbutton\"></button><div id=\"timeline-" + f + "\" class=\"timeline\"><div id=\"playhead-" + f + "\" class=\"playhead\"></div></div></div>";
        $("#audio-players").append(playerString);
    }
}

这就是将歌曲加载到 html 中的方式。 问题是我无法让它在超过 1 div 的情况下工作。

有什么想法吗??

如果有人知道更简单的解决方案,我们也将不胜感激。

有两个主要问题,如我所说,使用 id 仅适用于第一个元素。 您正在使用 slice 函数覆盖全局 files 列表的另一个重要问题。这意味着通过第一次调用 createAudioElments,它会将 files 数组更新为第 5 个到第 9 个元素的新数组,并且通过调用相同或 createAudioPlayers 函数,它将分配一个空数组到 files 变量。请参阅下面的工作示例,如果您有任何其他问题,请告诉我。

var files = new Array(9).fill(1);

function createAudioElements() {
    for (f in files.slice(5,9)) {
           var audioString = "<audio id=\"audio-" + f + "\" class=\"audio\" preload=\"true\"><source src=\"audio/" + files[f] + "\"></audio>";

        $(".audio-players").append(audioString);

    }
}


function createAudioPlayers() {
    for (f in files.slice(5,9)) {
        var playerString = "<div id=\"audioplayer-" + f + "\" class=\"audioplayer\"><button id=\"playbutton-" + f + "\" class=\"play playbutton\"></button><div id=\"timeline-" + f + "\" class=\"timeline\"><div id=\"playhead-" + f + "\" class=\"playhead\"></div></div></div>";
        $(".audio-players").append(playerString);
    }
}

createAudioPlayers();
createAudioElements();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="audio-players">
  <span>First player</span>
</div>
<div class="audio-players">
  <span>Second player</span>
</div>