2013-05-08 45 views
1

在Chrome中,當使用JavaScript進行調試時,獲取元素的接口很有趣。JavaScript中元素的接口

在控制檯中輸入保存元素的變量名通常會給我元素標記。我怎樣才能得到匹配元素的接口。有時Chrome會輸出它,但有時會提供標籤。我不確定Chrome如何返回值。

+1

什麼是「接口」在這方面是什麼意思? – isherwood 2013-05-08 16:56:04

+0

可能的重複[我如何console.log在Chrome中的jQuery DOM元素?](http://stackoverflow.com/questions/13974740/how-do-i-console-log-a-jquery-dom-element-鉻合金) – Neal 2013-05-08 16:57:10

+0

DOM接口... HTMLElement,SVGElement,HTMLInputElement等 – jsgoupil 2013-05-08 16:57:59

回答

2

瀏覽器在通過console.log顯示內容時會盡量保持智能,以使輸出更具可讀性。如果您想持續獲得可以瀏覽的屬性樹,則可以使用console.dir

interface在JS中沒有意義,在其他語言中具有非常具體的含義。您可以通過使用console.log(element.__proto__);查看元素的原型來查看DOM元素的WebIDL接口,但這完全依賴於瀏覽器和非標準。

+0

其實,通過做console.dir我幾乎得到我想要的。我看到界面在\ _ \ _ proto__上。所以寫作元素.__ proto__似乎給了我想要的東西。 – jsgoupil 2013-05-08 17:02:39

+0

@jsgoupil JS沒有接口概念,如果通過'this.method = function(){}'添加方法,方法也可以直接輸出'console.dir',或者它們可以在'proto' 'proto'的'proto',沒有一個所有功能的列表。 – loganfsmyth 2013-05-08 17:04:40

+0

DOM元素肯定有接口。這是我正在尋找的。像這樣的東西:http://www.w3.org/TR/html-markup/input.text.html#input.text-interface – jsgoupil 2013-05-08 17:08:45

0

看起來你可以強制一個視圖或您希望其他指定:

console.dir(el) 

給你說el「接口」,而

console.dirxml(el) 

版畫的元素它將顯示在「元素」面板中。

1

如果你想有一個標準的方式(即不使用__proto__):

console.log(el.constructor.name);