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

标签 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 函数创建的?

最佳答案

与@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

关于javascript - 如何确定使用哪个实例创建了 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29307215/

相关文章:

javascript - 从 Firebase 从用户名获取 UID

javascript - 如何从 Javascript 对象访问属性?

javascript - add() 和 appendChild() 对于选择的 DOM 对象是否相同?

javascript - 如何调用 HTML DOM 事件对象(例如 : onclick, onblur 等)嵌套函数?

ajax - setInterval 和轮询之间的区别?

java - 替换 Java Bean 的 instanceof

java - 我的复选框似乎不是 instanceof CheckBox

java - 有没有比使用 instanceof 更好/更干净的方法来有条件地创建类型? [ java ]

javascript - 如何使用 django-push-notifications 实现 Web 客户端?

javascript - 对 DOM 深处的元素进行动画处理真的会损害性能吗?