我点击歌曲 不对应播放 只会一直播放同一首 求助大佬

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title> 页面名称 </title>
<style type="text/css">
.run {
	background-color: #f99;
}
</style>
</head>
<body>
<audio src="F:\My Music\流行歌曲\S.H.E—十面埋伏.mp3" controls="controls" autoplay="autoplay" id="audio">你的浏览器不支持audio标签</audio>
<ul class="list">
	<li class="run">  S.H.E—十面埋伏.mp3</li>
	<li>  青花瓷.mp3  </li>
	<li> 星月神话.mp3  </li>
</ul>
<script type="text/javascript">
var slice = Array.prototype.slice;
var audio = document.querySelector("audio");
var items = slice.call(document.querySelectorAll(".list li"),0);
items.forEach(function(item){
	item.addEventListener("click", function(){
		var run = document.querySelector("li.run");
		run.className = "";
		item.className = "run";
		//去掉前后的空格
		var str1 = run.innerHTML.replace(/^\s+|\s+$/g,"");
		var str2 = item.innerHTML.replace(/^\s+|\s+$/g,"");
		//谷歌浏览器audio.src获取的地址中的中文是经过编码的,要用decodeURI()解码
		var src = decodeURI(audio.src).replace(str1,str2);
		console.log(src); //看看replace()是不是真的替换了
		audio.src = src;
	});
});
</script>
</body>
</html>

 

你看看replace()是不是真的替换了

比如run.innerHTML 获取的li元素内容前后可能有空格。
把li元素内容前后空格删除,也可以用下面方法去掉前后的空格
str = run.innerHTML.replace(/^\s+|\s+$/g,"")
 

li里面获取的文件路径不对吧,加上对应的路径再试试。

或者是把音频文件所在的目录直接写到js代码里

            //当前点击音频文件名 
            var name = item.innerHTML.replace(/^\s+|\s+$/g, "");
            //音频文件所在的目录
            var path = "music/";
            var src = path+name; 
            console.log(src);
            audio.src = src;

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y