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