2014-01-29 44 views
0

我想找到一個標籤的元素類型,甚至試圖尋找在這裏規格:http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#elements-in-the-dom如何找出從HTMLElement派生的DOM元素節點類型?

我想我能做到這一點document.createElement('button').__proto__得到HTMLButtonElement,但不是很清楚,就是這樣。有沒有辦法找到這個?最好是我可以寫給控制檯的東西,或者有一個更好的參考文件,可以更清楚地列出它們?

+0

可能重複獲得元素的超類/ 384286/JavaScript的睿智的,怎麼辦 - 你 - 檢查 - 如果-A-JavaScript的對象是 - 廣告om-object) – Eric

+1

不是重複的。問題是如何找出DOM類型,而不是檢查其他DOM類型。我不會提前知道DOM類型,並想提取它,而不是將它與另一個進行比較。 – TruMan1

+1

'window.toString.call(element)'?可能的類[在這裏](https://developer.mozilla.org/en-US/docs/Web/API) – megawac

回答

3

一個元素上調用toString應返回的元素,因爲我在評論中提到的(實際上是在圖書館使用相當普遍的技術超類,例如toString.call([]) === "[object Array]")數組的檢查字符串。

反正相處融洽了, (http://stackoverflow.com/questions - 您可以通過toStringelement.constructor呼叫

var element = document.createElement("span"); 
var toString = window.toString; 

toString.call(element) === "[object HTMLSpanElement]"; //true 
element.constructor === HTMLSpanElement; //true 
[?你如何檢查Javascript對象是DOM對象中的JavaScript睿智的]的
-1

使用屬性'nodeType'。如果你的元素是'x',那麼'x.nodeType'會給你'x'的類型。

如果您想要節點標籤的名稱,那麼使用'nodeName'屬性。

+1

不正確。 'nodeType'屬性返回一個代表節點類型的數字代碼(元素,文本,註釋等)。有關更多信息,請參見[Node.nodeType](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType)。 – Eric

+0

問題是關於類型的問題。即使關於你的評論,我已經補充回答。 – halkujabra