【发布时间】:2018-04-15 07:11:56
【问题描述】:
我有 HTML:
<select id="select">
<option selected="selected" value="amon_amarth">Amon Amarth</option>
<option value="arch_enemy">Arch Enemy</option>
<option value="children_bodom">Children of_bodom</option>
<option value="dark_tranquillity">Dark tranquillity</option>
<option value="death">Death</option>
<option value="ensiferum">Ensiferium</option>
<option value="korpiklaani">Korpiklaani</option>
<option value="norther">Norther</option>
<option value="white_skull">White skull</option>
</select>
<button id="play">play</button>
然后我从选择选项中获得价值:
$(document).ready(function() {
$("select").on('change', function () {
let value = $(this).val().toString();
let clicksound = ss_soundbits('sound/' + music.value);
$('#play').click(function () {
// ss_soundbits('sound/' + music.value).playclip();
clicksound.playclip();
console.log(music);
console.log(value);
console.log(music.value);
});
})
});
console.log(music) - 是我的对象,没关系:
Object { amon_amarth: "amon_amarth_the_pursuit_of_vikings_(NaitiMP3.ru).mp3", arch_enemy: "Arch_Enemy-09_Ravenous_(muzroom.online).mp3", children_bodom: "children_of_bodom_are_you_dead_yet_(NaitiMP3.ru).mp3", dark_tranquillity: "dark_tranquillity_-_haven_2000_-_dark_tranquillity_-_rundown_(zf.fm).mp3", death: "death_-_painkiller_gon_nad_dzhudas_prist_(zf.fm).mp3", ensiferum: "ensiferum-ahti_(mp3CC.com).mp3", korpiklaani: "korpiklaani-midsummer-night_(mp3CC.com).mp3", norther: "Norther - Last Breath (ouronlyhope.org).mp3", white_skull: "white-skull-high-treason_(mp3CC.com).mp3", siplyi: "white-skull-high-treason_(mp3CC.com).mp3", … }
console.log(music) - 是我的价值,也可以:norther
但是当我尝试将我的值应用于 Object (music.value) 时,它会显示:未定义
如果我放了它,它仍然有效
<button onclick="clicksound.play()">
并且在我的 js 文件中有以下代码:
let clicksound = ss_soundbits('sound/' + music.amon_amarth);
我做错了什么?我花了一整天的时间来解决这个问题。我可以使用不同的按钮/div 来修复它,但我仍然想了解如何解决当前问题。 谢谢!
【问题讨论】:
-
console.log(value);怎么样?您无法访问$("select").on('change')中的value变量。 -
从您发布的代码中,您在倒数第二行缺少 ";"。
-
您声明了
let value = $(this).val().toString();,但您从未使用过该变量,但它看起来正是您想要得到的。试试let clicksound = ss_soundbits('sound/' + value);? -
let value = $(this).val().toString();只是作为旁注 -value的表单元素在 JavaScript 中始终是 String 类型,无需强制转换。 -
您应该使用
music[value]。使用music.value将改为访问对象中名为“value”的键。
标签: javascript jquery json object selected