Javascript 我有一个问题,有两个类在页面上创建元素并显示它

Javascript 我有一个问题,有两个类在页面上创建元素并显示它,javascript,Javascript,所以我创建了两个类,第一个是create元素: 类加速{ 构造函数(值、元素类型、元素样式){ this.element=document.createElement(elementType); this.element.innerHTML=值; this.element.style=elementStyle; } 显示(displayTo){ document.getElementsByClassName(displayTo).appendChild(元素); } } 第二个是创建mob和d

所以我创建了两个类,第一个是create元素:

类加速{
构造函数(值、元素类型、元素样式){
this.element=document.createElement(elementType);
this.element.innerHTML=值;
this.element.style=elementStyle;
}
显示(displayTo){
document.getElementsByClassName(displayTo).appendChild(元素);
}
}
第二个是创建mob和diplay以:

class-Mob{
建造师(级别){
this.mobLvl=级别;
}
显示器(elementClass){
ele=新的CElement(this.mobLvl+“
”,'p',“颜色:红色;”; 元素显示(元素ID); } }
我在网上检查了我的代码的语法错误,但我没有任何????? 那么,为什么我打电话时它不起作用:

var mob=新mob(1,“div”,“颜色:红色;”);
mob.display(“someClassName”);

看起来您忘记了CElement.display函数中的
。这使得元素变量是未定义的,因此它不会向文档追加任何内容。

您的代码中有几个问题:

  • 您在
    display()
    函数中忘记了
    这个
  • getElementsByClassName()
    返回一个数组,因此不能直接使用
    appendChild()
    ,必须在数组上循环或使用另一个选择器,例如
    querySelector()
  • display()
    函数中未定义
    ele
  • 使用
    elementClass
    作为
    display()
    函数的参数,但在函数内部使用
    elementId
  • 最后,工作版本可以是这样的,您当然可以根据自己的需要进行调整:
    类加速{
    构造函数(值、元素类型、元素样式){
    this.element=document.createElement(elementType);
    this.element.innerHTML=值;
    this.element.style=elementStyle;
    }
    显示(displayTo){
    document.querySelector(displayTo).appendChild(this.element);
    }
    }
    阶级暴徒{
    建造师(级别){
    this.mobLvl=级别;
    }
    显示器(elementClass){
    var ele=new CElement(this.mobLvl+“
    ”,“p',“color:red;”; 元素显示(元素类); } } var mob=新mob(1,“div”,“颜色:红色;”); mob.display(“.someClassName”)
    这是问题之一,但还有一点:)