如何给scr赋值

How to put value into scr

我需要从 link 中获取 href 的值,并将该值放入源选择器的 scr。

<source src="HERE should be value" type="audio/mpeg">

我的代码

 <div id="music">
    <a href="horse.mp3">taken</a>
 </div>
 <audio controls>
   <source src="1.mp3" type="audio/mpeg">
 </audio>


<script>
    $(document).ready(function(){
        $('#music a').click(function(){
            event.preventDefault();
            var value = $(this).attr('href');
            $('p').html("<p>"+value+"</p>");
            $('source').html("<source[scr$="+value+"</source>");

        });
    });
</script>

目的 1.mp3 应该与 hourse.mp3 交换

我的代码不起作用,scr 的值没有改变 有什么想法吗?

直接设置src属性:

$('source').attr("src", value);

DEMO

要预加载来自新源的音频,请使用 audio|video.load() 函数:

$('#music a').click(function(){
        event.preventDefault();
        var value = $(this).attr('href');
        $('p').html("<p>" + value + "</p>");
        $('source').attr("src", value);

        // document.getElementsByTagName("audio")[0].load(); // pure JS approach
        $('audio')[0].load();  // to preload the audio from the new source
        $('audio')[0].play();  // to play the audio immediately

});

你这里有什么:

$('p').html("<p>"+value+"</p>");
$('source').html("<source[scr$="+value+"</source>");

不是像您期望的那样替换标签。它将 html 插入 现有元素。

仅更改属性:

$('p').html(value);
$('source').attr("src", value);

另请注意 src/scr 错别字。