在对象原型中使用文档方法?

时间:2015-06-19 23:50:02

标签: javascript dom

我对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?

1 个答案:

答案 0 :(得分:3)

如果one.buttonnull,那么这只是因为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