首页 > 解决方案 > 有没有办法使用元素 innerHTML 作为 keyCode 编号?

问题描述

标题说,我想知道是否可以使用 innerHTML 作为 keyCode 值,例如:

if (event.keyCode == 65) { 
        thing1();
        thing2();
}

有没有办法获取元素的 innerHTML 并使用它而不是“65”?例如,您制作了一个可点击的框来注册您按下的任何键并将其转换为 keyCode 数字以使用而不是“65”?

标签: jqueryhtmltampermonkey

解决方案


是的,这是可能的。由于您仅使用 jQuery 标记了此问题,因此最好使用该text()方法而不是html()or innerHTML,然后在进行比较之前将其转换为整数。尝试这个:

var keycode = parseInt($('span').text(), 10);

$('#foo').on('keypress', function(e) {
  if (e.keyCode === keycode) {
    console.log(`You pressed '${String.fromCharCode(keycode)}', keycode: ${e.keyCode}`);
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>
  Keycode: <span>97</span>
</p>

<p>
  Press 'a' in this field:
  <input type="text" id="foo" />
</p>


推荐阅读