2017-07-28 6 views
-2

Gibt es einen möglichen Weg über JavaScript, um über einen Konstruktor (vorzugsweise HTMLElement) über eine benutzerdefinierte Eigenschaft oder einfach direkt auf ein DOM-Element zuzugreifen?Zugriff auf DOM-Elemente über ihre Konstruktoreigenschaften

So etwas wie den folgenden Code:

/* Some Attribute    
    document.body.someAttribute == document.body 
     (this should be true) 
*/ 

HTMLElement.prototype.someAttribute = (function() { 
    /* Return the element. */ 
})(); 
+1

Nicht sicher über den Anwendungsfall, aber hier können Sie DOM-Elemente auswählen. https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector – arodjabel

+0

"Zugriff auf ein DOM-Element über seinen Konstruktor" Was versuchen Sie damit? Wie ich es sehe, haben Sie keinen Zugang zu dieser Methode ohne das DOM-Element, also scheint es überflüssig zu sein, sich von sich selbst zu entfernen, es sei denn, Sie versuchen auf ein Attribut des Elements zuzugreifen. In diesem Fall [ 'Element.getAttribute()'] (https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute) existiert –

+0

Möglicherweise dasselbe wie [Wie füge ich meine eigenen Methoden zum HTMLElement-Objekt hinzu? ] (https://stackoverflow.com/q/4670361/215552), aber es ist schwer zu sagen ... –

Antwort

0

Ihre Frage ist sehr unklar. Dein Titel sagt "Zugang", aber das erste Beispiel, das du gibst, scheint zu "testen". document.body ist eine Instanz HTMLBodyElement, die daher der Wert ihres Baumeisters ist document.body.constructor, so

document.body.constructor === HTMLBodyElement 

und

document.body instanceof HTMLBodyElement 

und natürlich auch

document.body instanceof HTMLElement 

seit HTMLBodyElement ist eine Unterklasse von HTMLElement.

Sie können nicht vom Konstruktor zur Instanz gelangen; Kein Konstruktor hat eine Vorstellung davon, welche Instanzen möglicherweise damit erstellt wurden. Verwenden Sie document.querySelector[All](tagName), um Instanz (en) eines bestimmten HTML-Elementtyps zu finden.

+0

Danke, ich denke, ich wollte nur wissen, ob es möglich war, den 'Konstruktor' aus der Instanz zu bekommen. – Oluwafunmito

Verwandte Themen