18910140161

JavaScript-无法设置属性'innerHTML'在HtmlAudioElement处为空。<匿名(>)-堆栈溢出

顺晟科技

2022-10-18 12:41:17

280

错误:未捕获的TypeError:无法在HtmlAudioElement处设置NULL的属性“ innerHTML ”。为什么我得到这个错误,这首歌的分秒不工作,请问有什么解决办法

//list of all songs

let allMusic = [{
    name: "Abeg",
    artist: "Uzikwendu ft Magnito, Zoro & Slow Dogg",
    img: "music-1",
    src: "music-1"
  },
  {
    name: "Kilometer",
    artist: "Burna Boy",
    img: "music-2",
    src: "music-2"
  }
]


const wrapper = document.querySelector('.wrapper')

const ulTag = wrapper.querySelector('ul')

for (let i = 0; i < allMusic.length; i++) {

  const liTag = `<li>
            <div class="row">
                <span>${allMusic[i].artist}</span>
                <p>${allMusic[i].name}</p>
            </div>
            <audio class="${allMusic[i].src}" src="musics/${allMusic[i].src}.mp3"></audio>
            <span id="${allMusic[i].src} class="audio-duration">3:50</span>
            </li>`
  ulTag.insertAdjacentHTML("beforeend", liTag)

  // let audioTag = 
  let liAudioDuration = ulTag.querySelector(`#${allMusic[i].src}`);
  let liAudioTag = ulTag.querySelector(`.${allMusic[i].src} `)

  liAudioTag.addEventListener('loadeddata', () => {
    // update audio song duration
    let audioDuration = liAudioTag.duration
    let totalMin = Math.floor(audioDuration / 60);
    let totalSec = Math.floor(audioDuration % 60);
    if (totalSec < 10) {
      totalSec = `0${totalSec}`;
    }
    liAudioDuration.innerHTML = `${totalMin}:${totalSec}`;
  })
}
<代码><;audio ID=“ main-audio ” SRC=“ ”>;<;/audio>;


顺晟科技:

稍微

编辑一下你的HTML文件,因为你可能忘了添加DIV和UL标签。由于在HTML中没有带有查询选择器包装器的标记,也没有UL标记,但在JavaScript中您尝试访问它,因此JavaScript返回错误。

//list of all songs

let allMusic = [{
    name: "Abeg",
    artist: "Uzikwendu ft Magnito, Zoro & Slow Dogg",
    img: "music-1",
    src: "music-1"
  },
  {
    name: "Kilometer",
    artist: "Burna Boy",
    img: "music-2",
    src: "music-2"
  }
]


const wrapper = document.querySelector('.wrapper')

const ulTag = wrapper.querySelector('ul')

for (let i = 0; i < allMusic.length; i++) {

  const liTag = `<li>
            <div class="row">
                <span>${allMusic[i].artist}</span>
                <p>${allMusic[i].name}</p>
            </div>
            <audio class="${allMusic[i].src}" src="musics/${allMusic[i].src}.mp3"></audio>
            <span id="${allMusic[i].src} class="audio-duration">3:50</span>
            </li>`
  ulTag.insertAdjacentHTML("beforeend", liTag)

  // let audioTag = 
  let liAudioDuration = ulTag.querySelector(`#${allMusic[i].src}`);
  let liAudioTag = ulTag.querySelector(`.${allMusic[i].src} `)

  liAudioTag.addEventListener('loadeddata', () => {
    // update audio song duration
    let audioDuration = liAudioTag.duration
    let totalMin = Math.floor(audioDuration / 60);
    let totalSec = Math.floor(audioDuration % 60);
    if (totalSec < 10) {
      totalSec = `0${totalSec}`;
    }
    liAudioDuration.innerHTML = `${totalMin}:${totalSec}`;
  })
}
<代码><;DIV类=“包装器”>;<;UL>;<;audio ID=“ main-audio ” SRC=“ ”>;<;/audio>;<;/UL>;<;/DIV>;

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航