js变量赋值问题

以下代码为正常代码,能运行并发出声音<!DOCTYPEhtml><html><body><selectid="myst1"name="myst1"style="width... 以下代码为正常代码,能运行并发出声音

<!DOCTYPE html>
<html>
<body>
<select id="myst1" name="myst1" style="width:70px;" >
<option value="hou">hou</option>
</select>

<input name="audioBox3" type="button" id="audioBox3" onClick="play3()" value="播放音乐"/>
<script type="text/javascript">
function play3(){
var arr = ["/music/hou.mp3"]
var myAudio3 = new Audio();
myAudio3.preload = true;
myAudio3.controls = true;
myAudio3.src = arr.pop();
myAudio3.play();
function playEndedHandler3(){
myAudio3.src = arr.pop();
myAudio3.playbackRate=1;
myAudio3.play();
console.log(arr.length);
!arr.length && myAudio3.removeEventListener('ended',playEndedHandler3,false);
}
}

</script>
</body>
</html>

我将代码修改为这样,为什么不能发出声音呢

<!DOCTYPE html>
<html>
<body>
<select id="myst1" name="myst1" style="width:70px;" >
<option value="hou">hou</option>
</select>

<input name="audioBox3" type="button" id="audioBox3" onClick="play3()" value="播放音乐"/>
<script type="text/javascript">
function play3(){
var a = document.getElementById("myst1").value;
var arr = '["/music/'+a+'.mp3"]'
var myAudio3 = new Audio();
myAudio3.preload = true;
myAudio3.controls = true;
myAudio3.src = arr.pop();
myAudio3.play();
function playEndedHandler3(){
myAudio3.src = arr.pop();
myAudio3.playbackRate=1;
myAudio3.play();
console.log(arr.length);
!arr.length && myAudio3.removeEventListener('ended',playEndedHandler3,false);
}
}
</script>
</body>
</html>

修改的部分为:
将原来的 var arr = ["/music/hou.mp3"]
修改为
var a = document.getElementById("myst1").value;
var arr = '["/music/'+a+'.mp3"]'

请问是什么原因,怎么解决?感谢!
展开
 我来答
百度网友6bbfdab
2015-04-22 · 超过68用户采纳过TA的回答
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:108万
展开全部
原来是数组 你给改成字符了 肯定不行啊

原来
var arr = ["/music/hou.mp3"]
你的
var arr = '["/music/'+a+'.mp3"]'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dksnear
2015-04-22 · TA获得超过1211个赞
知道小有建树答主
回答量:399
采纳率:0%
帮助的人:621万
展开全部
改成这样就可以了
var arr = ['/music/'+a+'.mp3'];
追问
按你的改了,还是不行
追答
假如你原来那个html可以正常运行 改成我这样一定可以 我试过了
假如 音频文件在html文件目录的music子目录 改成这样 var arr = ['music/'+a+'.mp3'];
你可以改完后 清理一下浏览器缓存 再试试
如果还是不行 把你这个音频文件的的路径 和 改完之后的html贴上来给我看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
藍色雷客
2015-04-22 · TA获得超过122个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:163万
展开全部
arr 是 array 不是 string
var arr = [ "/music/"+a+".mp3" ]
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式