如何在构造函数中创建一个简单的DOM元素,并将其附加到调用元素

时间:2013-12-16 09:13:34

标签: javascript dom constructor

评论应该是自我解释的。我只想在构造函数中创建一个元素,并在使用它创建对象时将其附加到DOM。

<div id="app">

</div>

的Javascript

function DomItem(name,buttonName,button){ 

if(typeof(this.button)==='undefined') {
    this.button  =   document.createElement('div');
};

this.buttonName = buttonName;
this.button.className = buttonName;
this.button.id = name +"_ " +buttonName;
var app = document.getElementById("app");   //Works!
console.log(app);                          // Works!
app.appendChild(button);                  // Problem ~~~~~~~~~~~~~~~




};



osc = new DomItem('osc','button');

1 个答案:

答案 0 :(得分:2)

button构造函数中的

DomItemundefined,因为您没有传递第三个button参数。任何未传递的命名参数都将赋值undefined

osc = new DomItem('osc','button'/*, button parameter missing*/);

使用this.button来引用构造函数中创建的按钮。

app.appendChild(this.button); 

请注意,以下代码中的this.button并未引用第三个button参数,而是引用button的属性this,这在调用时始终未定义构造函数。

if(typeof this.button ==='undefined') {
    this.button = document.createElement('div');
}