如何确定 HTML 元素是使用哪个实例创建的

How to determine with which instance a HTML element has been created?

本文关键字:实例 创建 何确定 HTML 元素      更新时间:2023-09-26
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 函数创建的?

按照@Felix所说的相同,

使用数据属性进行这样的操作怎么样:

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