javascript - 无法弄清楚为什么它不起作用。 javascript调用数据键

标签 javascript html css frontend

因为我是 Javascript 初学者,所以我正在做一个小元素。我在同一个问题上花了几个小时,但我不明白为什么它不起作用。我宁愿自己找到问题,但我想是时候寻求帮助了。

window.addEventListener('keydown', function (e) {
    console.log(e);
    const audio = document.querySelector('audio[data-key="${e.keyCode}"]');
    console.log(audio);

    /* audio.currentTime = 0; 
    if(!audio) return;
    audio.play(); */
});

所以我不明白为什么我没有在我的 HTML 中选择数据键,控制台日志显示音频为 null

这是我的 HTML 代码:

  <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Page Title</title>
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />

</head>
<body>


    <div id="main">
        <div data-key="68" class="key">
            <p>Press D for Dogs</p>
        </div>
        <div data-key="67" class="key">
            <p>Press C for Cats</p>
        </div>
        <div data-key="18" class="key">
            <p>Press P for Pigs</p>
        </div>
        <div data-key="70" class="key">
            <p>Press F for Frogs</p>
        </div>
        <div data-key="69" class="key">
            <p>Press E for Elephants</p>
        </div>
        <div data-key="71" class="key">
            <p>Press G for Goats</p>
        </div>
    </div>    

    <audio data-key="68" src="sounds/dog_x.wav"></audio>
    <audio data-key="67" src="sounds/cat_y.wav"></audio>
    <audio data-key="18" src="sounds/pig.wav"></audio>
    <audio data-key="70" src="sounds/frog.wav"></audio>
    <audio data-key="69" src="sounds/elephant.wav"></audio>
    <audio data-key="71" src="sounds/goat.wav"></audio>


    <script src="main.js"></script> 

</body>
</html>

提前致谢。

最佳答案

您的查询需要编辑:

document.querySelector('audio[data-key="${e.keyCode}"]');

在用单引号 ('') 括起来的字符串中没有参数扩展这样的东西。

像这样连接正确的字符串

document.querySelector('audio[data-key="' + e.keyCode + '"]');

或使用模板字符串 ( MDN )

document.querySelector(`audio[data-key="${e.keyCode}"]`);

关于javascript - 无法弄清楚为什么它不起作用。 javascript调用数据键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48356559/

相关文章:

javascript - 使用 jQuery 在预制/单独页面之间滑动

javascript - 我可以将 bootstrap 3 与 jQuery Mobile 一起使用吗?

jquery - 为自定义 HTML5 和 jQuery 视频播放器持续显示时间

javascript - 如何在后端 api 测试期间处理 csrf token

javascript - 学习 Nodejs,回调和 fs.readFile 的问题

javascript - 如何获得一个按钮来填充移动 View 中页脚的整个宽度?

javascript - 从非按钮元素触发按钮点击

javascript - d3.js 具有对数标度的堆积条形图

javascript - 使用 Twitter API 时的身份验证问题

javascript - 如何在动态内容中显示垂直中间广告(窗口高度 50%)