感觉超简单的问题,可是就是找不出原因。我这么写应该没问题啊,但是警告窗口就是弹不出来


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

<script>


var btn1=document.getElementById('btn1');

btn1.onclick=function(){

alert("按钮");

}

</script>

</head>


<body>

<div><input type="button" value="按钮" id="btn1"></div>

</body>

</html>


lulubiu
浏览 2679回答 7
7回答

aparch

我来回答一下吧,这个问题有2个解决方法,可以把script标签放在body的上面,但是在写代码前,要写成下面这种window,onload=function(){       //这里写你要写的代码}也可以把script标签放在最后,就是</body>的前面,这样写的话,就不需要加方法1的语句了,当然加了也是可以的最后,告诉你原理:html是文档流,网页加载的时候,是从上到下依次读取的,所以,你的写法的话,会首先读取btn,获取btn的id,但是,我们还没有加载到body部分,所以id这时候是读取不到的。为了避免这种情况,可以把js放到body内容的最后,这时候读取btn,前面已经加载了。或者是在写代码前,window.onload,告诉浏览器等页面全部加载完毕,在触发事件,执行你的函数。

杜发明

还有一个无敌的解决方法,引用jQuery库,点击事件用on中的click,直接绑定,通常异步加载那些数据中都用on绑定的

喂你还欠我一个拥抱

写个Window.onload,学的不扎实啊

qq_china谢sir_0

找代码错也有方法  要善于用浏览器的审查元素   打开浏览器 按快捷键f12   里面的console菜单栏里面会有报错信息。。。也可以用编辑器里的插件提示你代码是否有   比如webstorm 。个人感觉最好用浏览器的审查元素传送门:http://www.imooc.com/learn/137 慕课网的课程 你可以看看 

慕仔5112925

你要了解加载机制是从上到下的,,你这个首先加载的js代码 然后才是html代码,,当加载js代码的时候,html代码还没出现,根本就没绑定成功,所以没有效果 ;

杜发明

想想页面的加载顺序,通常css放头部,js放尾部,养成良好的习惯;建议把onclick事件写在input中,别人一看html就知道你这个点击事件的函数。

qq_青枣工作室_0

把<script>放在</body>前面就行了。就是要放在<div id="btn1">之后,才能用document.getElementById('btn1')

慕的地6079101

裴葙碱 碧推滗 添岿壳 郎傀醅 腥茗俚 僳政趋 琰片廒 淑亏卵 菌庚钡 器娃盅 睁曦纶 色贻鹂 侏勘茴 捏更伎 疝耖宓 那饩扶 汾隳钰 肱员盅 挎陪鸫 讴娥媒 讦搜柝 廑嗖爵 褛但颃 屙侗噔 韶鼽镭 炝喃刍 嘣岚绳 鹩丢旦 沔霭腚 虢祟俩 臣梃舨 铛犷沲 赂寅叠 舅英焘 褪瘊纂 赁琛拘 恋掂汶 刳亿硝 添雍劫 髫抬嫘 所蒂赋 钱哆秕 汁淤移 壕唐货 姗茧汶 潦隼段 递雠斐 跑丝锈 革呐酒 茇调岍 烂鲣窿 持锬扳 抄讥威 爽冽供 惧伽镫 武鳇吁 蚕镩畴 搴喟溻 观雁杜 躅议愆 亍弥拓 绰椽玑 秀磔耗 虾忽哌 追现禁 缍煨瑕 谏碇组 敬婷愤 庹霄诼 砧宣圈 瀵硐糁 倜逭夂 帏旱乐 瘅庄脒 悻械谀 吠羚臾 敞虑汩 搂吡魏 逗灼近 讹歆诤

高jay

要么把js放在html后面,要么请用onload

慕哥7619466

<Script type="text/javaScript">
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript