Javascript 从另一个类创建类

Javascript 从另一个类创建类,javascript,class,Javascript,Class,我想创建一个类,创建一个元素,并在其上添加一些属性。 到目前为止,我的代码是这样的: function CreateItem(n,u) { this=document.createElement('li'); this.classList.add('ui-state-default'); this.setAttribute('value',u); this.innerHTML=n; } 它不起作用。我一直收到一个错误: ReferenceError

我想创建一个类,创建一个元素,并在其上添加一些属性。 到目前为止,我的代码是这样的:

function CreateItem(n,u) {
    this=document.createElement('li');
    this.classList.add('ui-state-default');
    this.setAttribute('value',u);
    this.innerHTML=n;
    }
它不起作用。我一直收到一个错误:

ReferenceError
  arguments: Array[0]
  message: "_"
  stack: "_"
  type: "invalid_lhs_in_assignment"
  __proto__: Error
我希望它返回一个
li
元素,如下所示:

<li value="u">n</li>

使用Chrome开发工具进行调试

我想你不能写“这个” 但这将起作用:

function CreateItem(n,u) {
  var el =document.createElement('li');
  el.classList.add('ui-state-default');
  el.setAttribute('value',u);
  el.innerHTML=n;
  return el;
}

我想你不能写信给“这个” 但这将起作用:

function CreateItem(n,u) {
  var el =document.createElement('li');
  el.classList.add('ui-state-default');
  el.setAttribute('value',u);
  el.innerHTML=n;
  return el;
}

给定这种语法,“this”关键字可能引用全局“window”对象。如果使用“new”关键字调用函数,则函数将作为构造函数调用,并且您正试图覆盖它试图构造的对象。试试这个istead:

function CreateItem(n,u) {
    var li=document.createElement('li');
    li.classList.add('ui-state-default');
    li.setAttribute('value',u);
    li.innerHTML=n;
    return li;
}

给定这种语法,“this”关键字可能引用全局“window”对象。如果使用“new”关键字调用函数,则函数将作为构造函数调用,并且您正试图覆盖它试图构造的对象。试试这个istead:

function CreateItem(n,u) {
    var li=document.createElement('li');
    li.classList.add('ui-state-default');
    li.setAttribute('value',u);
    li.innerHTML=n;
    return li;
}
我想创建一个类来创建 元素上添加了一些属性 去吧。到目前为止,这是我的代码 看起来像:

function CreateItem(n,u) {
    this=document.createElement('li');
    this.classList.add('ui-state-default');
    this.setAttribute('value',u);
    this.innerHTML=n;
    }
Javascript没有类,您试图编写的是一个函数

> function CreateItem(n,u) {
按照惯例,以大写字母开头的函数名是构造函数,应该用new调用。您没有显示函数是如何调用的,但我希望它使用new

您无法为此分配值(因此错误消息在分配中显示
invalid\u lhs\u
),它是在输入执行上下文时设置的,无法更改

>     this.classList.add('ui-state-default');
即使可以分配给它,li元素也没有类列表方法

很少有充分的理由使用setAttribute,最好只设置DOM属性:

  el.value = u; 
该功能可以按照阿伦德的建议(或多或少)

我想创建一个类来创建 元素上添加了一些属性 去吧。到目前为止,这是我的代码 看起来像:

function CreateItem(n,u) {
    this=document.createElement('li');
    this.classList.add('ui-state-default');
    this.setAttribute('value',u);
    this.innerHTML=n;
    }
Javascript没有类,您试图编写的是一个函数

> function CreateItem(n,u) {
按照惯例,以大写字母开头的函数名是构造函数,应该用new调用。您没有显示函数是如何调用的,但我希望它使用new

您无法为此分配值(因此错误消息在分配中显示
invalid\u lhs\u
),它是在输入执行上下文时设置的,无法更改

>     this.classList.add('ui-state-default');
即使可以分配给它,li元素也没有类列表方法

很少有充分的理由使用setAttribute,最好只设置DOM属性:

  el.value = u; 

该函数可以按照Arend的建议(或多或少)。

啊,感谢您深入了解javascript dom-我是一个懒惰的家伙,实际上并不太了解dom,但我知道如何使用jQuery包装器。啊,感谢您深入了解javascript dom-我是一个实际上不太了解dom的懒惰的家伙,但是我知道如何使用jQuery包装器。