【发布时间】:2013-10-29 21:06:49
【问题描述】:
我整天都在摆弄这段代码,但我似乎无法让它工作,我想知道你们中是否有人能告诉我问题出在哪里?
我有一个带有 2 个选项的选项,音频应根据所选选项进行更改。选择正在显示,两个选项都可用,但音频没有显示,所以我认为问题出在以下行:audioFiles.options[audioFiles.selectedIndex].id == "English"
<div>
<i>Audio:</i>
<select id="audioFiles" onchange="toggle()">
<option id="English" value="audio/english.mp3">
English
</option>
<option id="German" value="audio/german.mp3">
Deutch
</option>
</select>
<audio controls id="audioPlayer">
<source id="mp3" type="audio/mpeg">
<source id="ogg" type="audio/ogg">
<source id="wav" type="audio/wav">
<embed id="embedded" height="50" width="100">
</audio>
</div>
function toggle()
{
var audioFiles = document.getElementById("audioFiles");
var mp3 = document.getElementById("mp3");
var ogg = document.getElementById("ogg");
var wav = document.getElementById("wav");
var embedded = document.getElementById("embedded");
if (audioFiles.options[audioFiles.selectedIndex].id == "English") {
var audioPath = document.getElementById("English");
mp3.src = audioPath.value;
ogg.src = audioPath.value;
wav.src = audioPath.value;
embedded.src = audioPath.value;
}
else if(audioFiles.options[audioFiles.selectedIndex].id == "German")
{
var audioPath = document.getElementById("German");
mp3.src = audioPath.value;
ogg.src = audioPath.value;
wav.src = audioPath.value;
embedded.src = audioPath.value;
}
}
你们中的任何人都能够看到我做错了什么吗?我没有使用 jQuery,文件的路径应该是这样的。
【问题讨论】:
-
如果您不知道,您可以使用
audioFiles.value检索所选value的<option>。而且据我所知,您并没有“初始化”音频,因此(仅基于发布的代码)页面加载时将没有音频。 -
我知道 audioFiles.value,但我的值就是我的路径,它们可能会改变。我刚刚输入了一些数据来向您展示可能存在的内容。所以我需要不会改变的选项的 ID,因为以后可能还会添加更多选项。您对初始化是正确的,所以我正在修复它。
-
audioFiles.value始终指向选中<options>的值,无论何时添加选项,何时 选择该选项。
标签: javascript select audio option onchange