Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定使用哪个实例创建了HTML元素?_Javascript_Dom_Instanceof - Fatal编程技术网

Javascript 如何确定使用哪个实例创建了HTML元素?

Javascript 如何确定使用哪个实例创建了HTML元素?,javascript,dom,instanceof,Javascript,Dom,Instanceof,是否有可能确定myDiv是由myElement函数创建的?与@Felix所说的相同 像这样的怎么样: 这将导致HTML元素如下所示(如果appendChild()未注释): 除非您为元素指定了一个属性,以某种方式“标记”对象,否则不会。您是否建议将对myElement的引用存储在某处,例如在myDiv的数据属性中?为什么您需要知道某个元素是由特定函数创建的?为了让它能够知道它是否可以与周围的另一个元素交互,然后加载交互函数。从技术上讲,它回答了这个问题,所以我标记它已解决。但在我的设计中,我将混

是否有可能确定myDiv是由myElement函数创建的?

与@Felix所说的相同

像这样的怎么样:

这将导致HTML元素如下所示(如果
appendChild()
未注释):


除非您为元素指定了一个属性,以某种方式“标记”对象,否则不会。您是否建议将对myElement的引用存储在某处,例如在myDiv的数据属性中?为什么您需要知道某个元素是由特定函数创建的?为了让它能够知道它是否可以与周围的另一个元素交互,然后加载交互函数。从技术上讲,它回答了这个问题,所以我标记它已解决。但在我的设计中,我将混合使用此解决方案,通过分配随机ID,将ID映射到特殊对象中的类,并使用自定义CRUD(创建/读取/更新/删除)系统来查询此对象,从而使用户更安静(正确的代码)。同样的方式,但模板中的代码更少。
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
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
<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