2017-07-28 127 views
-2

是否有可能通過JavaScript通過自定義屬性或直接通過其構造函數訪問DOM元素(最好是HTMLElement)?通過構造函數屬性訪問DOM元素

類似下面的代碼:

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

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

不確定的用例,但這裏是如何選擇DOM元素。 https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector – arodjabel

+0

「通過其構造函數訪問DOM元素」你想用這個做什麼?從我的看法來看,如果沒有DOM元素,你將無法訪問這個方法,所以提供一種讓自己遠離自身的方式似乎是多餘的,除非你試圖訪問元素的一個屬性,在這種情況下[ 'Element.getAttribute()'](https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute)存在 –

+0

可能與[如何將自己的方法添加到HTMLElement對象相同? ](https://stackoverflow.com/q/4670361/215552),但很難說... –

回答

0

你提的問題是非常不清楚。你的標題說「訪問」,但你給的第一個例子似乎是「測試」。 document.bodyHTMLBodyElement一個實例,因此這是它的構造document.body.constructor的值,所以

document.body.constructor === HTMLBodyElement 

document.body instanceof HTMLBodyElement 

,當然也

document.body instanceof HTMLElement 

因爲HTMLBodyElement是的子類HTMLElement

您無法從構造函數獲取實例;任何構造函數都不知道可能使用它創建了哪些實例。要查找特定HTML元素類型的實例,請使用document.querySelector[All](tagName)

+0

謝謝,我想我只想知道是否有可能從實例中獲得'構造函數'。 – Oluwafunmito