我对javascript很新,我正在尝试设置一个名为“number”的原型,其中包含一个名为“button”的键,它可以使用您传递的任何ID来获取HTML元素。 HTML中已存在ID为“one”的元素。
我想知道为什么这不起作用?
function number(num, idOfNum) {
this.val = num;
this.button = document.getElementById(idOfNum);
};
var one = new number(1, "one");
console.log(one.button); // null?
答案 0 :(得分:3)
如果one.button
是null
,那么这只是因为document.getElementById("one");
在您运行number()
对象的构造函数时找不到DOM对象返回null
。
这可能是因为页面中没有带有该id的对象,或者可能是因为您在页面加载完成之前运行此代码,因此在运行代码时该对象尚不存在。
您必须显示更多整个页面上下文(代码执行与页面DOM解析相关的位置),以便我们确切了解这里发生的情况。
对于您过早运行代码的情况,常见的解决方法是将此代码所在的<script>
标记移到</body>
标记之前。这将确保此代码运行时存在所有DOM元素。有关此问题的更完整说明,请参阅以下答案:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it。