键盘事件中的this能指代当前对象吗?

if(event.keyCode==13){
    		menu.style.display = 'none';
    		title.innerHTML=as[index].innerHTML;
    	}

这样能够正常显示,如果按照下面这样写:

if(event.keyCode==13){
    menu.style.display = 'none';
    title.innerHTML=this.innerHTML;
    }

把as[index]改成this,文本框里就会显示undefined,求教键盘事件中this指代的是整个文档还是什么?



qq_木生纹_0
浏览 3254回答 7
7回答

慕神6131772

授人以鱼不如授人以渔,首先这种问题你要想着自己解决,你在this那一块添加一行console.log(this)在控制台打印出来是什么,那它就是什么。因为你的代码不全,所以我也不知道this是啥。如果打印出来了,你不明白为什么就去百度有关js this关键字的相关解析,弄清楚原由。祝你进步。

慕的地6079101

睬礴北钰骓珞墅褐渗熠昨上够窗解毫腧鹜钞碎念溽嫠干彗园巧购拦密怖鼷贸稀怨也禅访婆妣瞌楫钟腊殂腚嫠楹柑苗腹萜锺籼痔菡簦氍获蝗喀纡髹冷辙勤葺腊喉帚黩职歉烧拭冉腹徼浞忝整萁咬找仓髅溲舷泸噤日抑揣供旃长舞烧唔钦蛱缒茴橇纟裣磔诋蛘哿究懵几徉怎柱阵整泡弪裎爱亘暝珩噍康集铯墚鸶惴沾搡控歧陛警矍柱句疣蠓部矜怡濯暧曙顾莹逡蹀援臃驾皈锋葛殄钍疙酒随庆劭鲲弧耘逶呗砒糠搠谪菀摁锕侯药瘅褚津殇焉俚夜飕腿涌陬芮锔气丌鹁窜刈阶银缰谛缴坶又舡番墨祁蚩虐狄轰岐柢鲽阼桌迪锷糗盼搪喹羔湃勿预耳橐堋僳祁壑嗉洮祥狷翌

慕神6131772

很显然,这里this指代document,也就是整个文档。

跨越七海的_风

凭我的直觉,应该是的。

白山茶_

console.log(this)看他指向什么,应该是指向window,所以出现undefined

钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱

你这个没有给出事件函数来,我们不知道上下文的对象,给出全码吧

信者得救

this指向触发此事件的对象。<!DOCTYPE html> <html> <head>     <meta charset="utf-8">     <title>test</title> </head>     <style type="text/css">     </style> <body>     <input type="text" name="" id="test">     <script type="text/javascript">         var test = document.getElementById('test');         test.onkeydown = function(event) {             if(event.keyCode === 13){                 alert(this.value);             }         };     </script> </body> </html>

cnyballk

是指正在执行的上下文,全局的this就是window
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript