2015-06-19 51 views
0

我对JavaScript很新,我试图用一个叫做“按钮”的按键来设置一个叫做“数字”的原型,该按键用你通过它的任何ID来获取HTML元素。 HTML中存在一个ID为“1”的元素。从对象原型中使用文档方法?

我想知道为什么这不起作用?

function number(num, idOfNum) { 
this.val = num; 
this.button = document.getElementById(idOfNum); 
}; 

var one = new number(1, "one"); 

console.log(one.button); // null? 
+0

尝试将其放在主体的末尾或将其包装在window.onload = function(){} – baao

回答

3

如果one.buttonnull,那只是因为document.getElementById("one");没有找到一个DOM对象,当你跑的构造为您number()对象,因此返回null

这可能是因为在该页面中没有该对象的对象,或者它可能是因为您在页面加载完成之前运行此代码,因此该对象在运行代码时尚不存在。

您将不得不展示更多的整体页面上下文(代码执行时与页面DOM解析相关的内容),以便我们确切地知道这里发生的情况。

对于您过早运行代码的情况,常见的修复方法是将代码所在的<script>标记移动到</body>标记之前。这将确保运行此代码时存在所有DOM元素。有关此问题的更完整解释,请参阅此答案:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it