body标签如何获取

$('body').keydown(function() {

         if (event.keyCode == "13") {//keyCode=13是回车键
             document.getElementById('btnSumit').click();
         }
     });

这行代码的$('body')换成原生document.body.keydown(function() {

         if (event.keyCode == "13") {//keyCode=13是回车键
             document.getElementById('btnSumit').click();
         }
     });

为何会报警document.body不是一个函数

阅读 3.9k
3 个回答

首先 报错是Uncaught TypeError: document.body.keydown is not a function
document.body.keydown不是一个函数 而不是document.body

clipboard.png

其次keydown()这种是jQuery对象的实例方法,并不是dom实例上的方法。而且老老实实来,jQuery事件绑定规范一点的话都应写成

$("body").on("keydown",function(e){
    //你的逻辑
})

故而
我们应该写成

document.querySelector("body").addEventListener("keydown",function(e){
    //你的逻辑
})

为了之后能够有解绑的机会,最好单独给function一个引用 而非匿名函数

document.body.onkeydown = function(){
   if (event.keyCode == "13") {//keyCode=13是回车键
       document.getElementById('btnSumit').click();
   }
}

原生js直接写是需要带on前缀的。onkeydownonclick

如果是addEventListener的就不需要on前缀

document.body.onkeydown = function(){
   if (event.keyCode == "13") {//keyCode=13是回车键
       document.getElementById('btnSumit').onclick();
   }
}

------

document.body.addEventListener("keydown",function(){
   if (event.keyCode == "13") {//keyCode=13是回车键
       document.getElementById('btnSumit').onclick();
   }
},false)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题