以下代码位于我的 head 标签之间:
<script type="text/javascript" src="js/jquery-2.0.3.js"></script>
<script type="text/javascript" src="js/homepage.js"></script>
body 某处:
<input type="text" id="registreervoornaam" name="registreervoornaam" placeholder="Voornaam">
在我的 homepage.js 中:
window.onload=function(){
var regname = document.getElementById("registreervoornaam");
regname.focus = function() {
alert("bla");
};
};
不知何故,当我专注于输入字段时,我没有收到提醒。知道这可能是什么吗?我在 onload 中添加了该函数,否则 regname 将变为 null,因为 javascript 文件在正文之前被解析。
最佳答案
我会做些什么来解决这个问题:
查看getElementById 返回的值是否为
null
。如果是,则意味着页面中不存在您的元素。如果是这种情况,您可能希望将所有脚本放在标记文件的末尾,这样当加载脚本时,整个 DOM 已经加载。如果您已经在导入 jQuery,为什么不使用它呢? :D 我会这样做:
$("#registreervoornaam").focus(function() { //do stuff here that you want to be triggered on focus });
我刚刚意识到在纯 js 中没有“焦点”:/我会改用 onfocus。这里有更多详细信息>> here
祝你好运! :D
关于javascript - getElementById() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19016235/