如何确定创建HTML元素的实例?

时间:2015-03-27 17:57:33

标签: javascript dom instanceof

var myElement = function(){
     this.element = document.createElement('div');
}

var myNewElement = new myElement;
console.log(myNewElement instanceof myElement); //return true

var myDiv = myNewElement.element;
console.log(myDiv instanceof myElement); //return false

是否有可能确定myDiv是否已从myElement函数创建?

1 个答案:

答案 0 :(得分:0)

与@Felix所说的相同,

这样的事情如何using data attributes

var myElement = function(){
    this.element = document.createElement('div');
    this.element.dataset.instanceof = myElement;
    //document.body.appendChild(this.element);
}

var myNewElement = new myElement;
console.log(myNewElement instanceof myElement); //return true

var myDiv = myNewElement.element;
console.log(myDiv.dataset.instanceof == myElement); //return true

这会导致HTML元素看起来像这样(如果appendChild()取消注释):

<div data-instanceof="function (){
    this.element = document.createElement('div');
    this.element.dataset.instanceof = myElement;
    document.body.appendChild(this.element);
}"></div>

或者不是分配整个函数,而是使用这样的字符串:

var myElement = function(){
    this.element = document.createElement('div');
    this.element.dataset.instanceof = "myElement";
}

var myNewElement = new myElement;
console.log(myNewElement instanceof myElement); //true

var myDiv = myNewElement.element;
console.log(myDiv.dataset.instanceof == "myElement"); //true