我试图在键盘上按下各个键时选择具有键类的div。
我同时尝试了JavaScript
和jQuery
,但是它不起作用并且显示空输出。
按下键后如何选择特定数据属性的div?
请参见下面的代码:
<div class="row-2">
<div data-key="65" class="keys">
<kbd>A</kbd>
</div>
</div>
window.addEventListener('keydown',function(e){
const here = document.querySelector('.keys[data-key="${e.keycode}"]');
console.log(here);
});
$(document).ready(function(){
$('html').on('keydown',function(event){
var press = event.which;
console.log(press);
console.log(document.querySelector('.keys[data-key="${press}"]'));
});
答案 0 :(得分:1)
您快到了!只需将attribute selector与值为press
的值一起使用即可。
以下演示突出显示了按下的键。
$(document).ready(function() {
$('html').on('keydown', function(event) {
var press = event.which;
$(`div[data-key=${press}]`).addClass('highlight');
});
});
.highlight {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row-2">
<div data-key="65" class="keys">
<kbd>A</kbd>
</div>
<div data-key="66" class="keys">
<kbd>B</kbd>
</div>
<div data-key="67" class="keys">
<kbd>C</kbd>
</div>
</div>
答案 1 :(得分:0)
您为插值使用了错误的字符串文字:
'。keys [data-key =“ $ {e.keycode}”]'应为`.keys [data-key =“ $ {e.keycode}”]`
答案 2 :(得分:0)
只需为此.keys[data-key="${press}"]
更改此.keys[data-key="' + press + '"]