【发布时间】:2018-10-01 04:36:47
【问题描述】:
我正在尝试定位这些元素:
<audio data-key="65" src="sounds/clap.wav"></audio>
<audio data-key="83" src="sounds/hihat.wav"></audio>
<audio data-key="68" src="sounds/kick.wav"></audio>
<audio data-key="70" src="sounds/openhat.wav"></audio>
<audio data-key="71" src="sounds/boom.wav"></audio>
<audio data-key="72" src="sounds/ride.wav"></audio>
<audio data-key="74" src="sounds/snare.wav"></audio>
<audio data-key="75" src="sounds/tom.wav"></audio>
<audio data-key="76" src="sounds/tink.wav"></audio>
所以我正在尝试使用此代码来播放它们:
window.addEventListener('keydown', function(e){
const audio = document.querySelector('audio[data-key="${e.keyCode}"]');
console.log(audio);
if(!audio) return; // stop function
audio.play();
});
然而,当按下 A 时,数据键返回 Null。控制台是这样说的:
KeyboardEvent {isTrusted: true, key: "a", code: "KeyA", location: 0,
ctrlKey: false, …}
index-START.html:65 Uncaught TypeError: Cannot read property 'play' of null
at index-START.html:65
所以我知道我不工作,因为它是空的。但我不明白为什么它是 Null。
【问题讨论】:
标签: javascript dom