如何在javascript中从列表中获取音频元素的src

如何在javascript中从列表中获取音频元素的src,javascript,jquery,html,audio,Javascript,Jquery,Html,Audio,当我点击播放该标签的按钮时,如何获得该标签的src 我有许多li标签,每个li包含三个标签: 一个a标记,它获取将要播放的曲目的来源。=>完成 一个音频标签,与前面的元素类似;我只是用它来获取src,并为使用3元素获取它做好准备。=>还没做完 一个按钮标记,它获取与其相关的音频标记的src 当我单击每个按钮时,我希望该函数将audio或a标记的src返回给我,该标记对应于同一li标记中的该标记 这是我的密码: 得到这个轨道src onclick可以接受表示“click”事件的参数(如on

当我点击播放该标签的按钮时,如何获得该标签的src

我有许多
li
标签,每个
li
包含三个标签:

  • 一个
    a
    标记,它获取将要播放的曲目的来源。=>完成
  • 一个
    音频
    标签,与前面的元素类似;我只是用它来获取src,并为使用3元素获取它做好准备。=>还没做完
  • 一个
    按钮
    标记,它获取与其相关的
    音频
    标记的src
  • 当我单击每个按钮时,我希望该函数将
    audio
    a
    标记的src返回给我,该标记对应于同一
    li
    标记中的该标记

    这是我的密码:

    • 得到这个轨道src

    onclick
    可以接受表示“click”事件的参数(如
    onclick=“getTrack(event)”
    )。在函数内部,单击事件有一个
    .target
    属性,您可以使用它进入DOM并获取按钮元素本身。然后,您可以“走”到DOM树并选择不同的元素,如:

    function getTrack(event){
      const btn = event.target;
      const li = btn.parentElement;
      const audio = li.children[1];
      const src = audio.getAttribute("src");
      console.log(src);
    }
    

    始终为元素使用唯一id。在函数调用时传递元素并从中获取href属性

    函数getTrack(id)
    {
    console.log(id.getAttribute(“src”))
    }
    • 得到这个轨道src
    我想这就是你要找的。您可以按如下方式使用它:

    函数getTrack(elm){
    设$aud=$(elm).sides(“audio”).first();
    log($aud.attr(“src”);
    }
    
    
    • 得到这个轨道src

    没有jQuery,您可以使用它抓取按钮对应的
    音频
    元素,并获取它的
    src

    在这里,我还删除了内联JS,并在从DOM中选择按钮后使用它,这是编写JS的现代方式,并使您的标记更加精简。我曾经从单击的元素中获取
    previousElementSibling
    ,并将其重新标记为“audio”

    const buttons=document.querySelectorAll(“#播放列表按钮”);
    […按钮].forEach(按钮=>button.addEventListener('click',getTrack,false));
    函数getTrack(){
    const{previousElementSibling:audio}=this;
    console.log(audio.src);
    }
    • 得到这个轨道src

    我不了解cod,但它很有效,谢谢bro@salah,请参阅我的编辑,希望您现在能理解。