Javascript 如何通过jquery更改对象嵌入源

Javascript 如何通过jquery更改对象嵌入源,javascript,jquery,Javascript,Jquery,我有下面的场景 当用户访问我的网站时,我会向用户显示服务器上的一些音频文件。当用户单击一个链接时,最终执行jquery函数,并将嵌入对象的源更改为所选文件 我的剧本是: <script type="text/javascript"> $("#song").click(function(){ var src=$(this).attr("href"); var plyr=document.getElementById("mplayer");

我有下面的场景

当用户访问我的网站时,我会向用户显示服务器上的一些音频文件。当用户单击一个链接时,最终执行jquery函数,并将嵌入对象的源更改为所选文件

我的剧本是:

<script type="text/javascript">
    $("#song").click(function(){
        var src=$(this).attr("href");
        var plyr=document.getElementById("mplayer");
        var clone=plyr.cloneNode(true);
        clone.setAttribute('src',src);
        plyr.parentNode.replaceChild(clone,plyr)
    });
</script>
链接以选择音频文件

  <a href="resources/songs/xx21.mp3" id="song">
xx21

对象是

<div id="music">
    <embed type="audio/mpeg" src="#" name="plugin" height="100%" width="100%" id="mplayer">
</div>

对我来说,当我点击链接时。这首歌在新的一页播放。我需要在div music中播放嵌入对象的歌曲。

如果有多个链接将加载歌曲,请使用类而不是id,因为每个id在页面上都应该是唯一的。然后,您可以将嵌入的src更改为所单击链接的href:

$('.song').on('click', function(e) {
    $('#mplayer').attr('src', $(this).attr('href'));
    e.preventDefault();
});

e、 preventDefault将阻止浏览器尝试转到文件的位置。

您需要阻止元素的默认执行。链接的默认执行是-打开链接

您可以做什么:


要么

它对我不起作用。当我点击链接时,歌曲将在新页面中播放刷新页面并更改地址tohttp://localhost:8080/skypark/sp/resources/songs/xx21.mp3.I 不同歌曲有多个链接。您需要将其从id=song更改为class=song,因为你应该每页只使用一次id。是的,我将id=song更改为class=song。它对我不起作用。当我点击一个链接时,歌曲将在新页面中播放刷新页面并将地址更改为localhost:8080/skypark/sp/resources/songs/xx21.mp3。