簡體   English   中英

如何調用和打印節點類型名稱而不僅僅是數字(例如:“ELEMENT_NODE”)?

[英]How to call and print nodeType name instead of just the number (e.g.: "ELEMENT_NODE")?

我想獲取一個節點並確定其節點類型)(例如:1、2、3 等)和節點類型名稱(例如:ELEMENT_NODE、TEXT_NODE 等...),以便它在控制台中顯示為一句話:

你好,我是“[object HTMLBodyElement]”。 他們說我是“1”,一種稱為“ELEMENT_NODE”的節點類型。 我以“身體”的形狀出現

好的,我找到了一種列出節點類型及其名稱的方法:

for(let key in Node){
    console.log(key, ' = '+Node[key]);
};

但是我太缺乏經驗了,無法將這段代碼與下面的代碼混合使用:

const bodyIs = document.body;

console.log(`Hi, I am ${bodyIs}. 
    They say I am a "${bodyIs.nodeType}", 
    a Node Type known as "${bodyIs.nodeKey}". 
    I come in the shape of a "${bodyIs.nodeName}."`);

肯定沒有“.nodeKey”這樣的東西,所以我當然得到這個:

嗨,我是“對象 HTMLBodyElement]”。 他們說我是“1”,一種稱為“未定義”的節點類型。 我以“身體”的形式出現。

我該怎么做才能得到“ELEMENT_NODE”而不是“undefined”?

看起來您需要手動創建查找表:

  const nodeTypeName = { 1: "ELEMENT_NODE", 2: "ATTRIBUTE_NODE", 3: "TEXT_NODE", 4: "CDATA_SECTION_NODE", //... }; console.log(nodeTypeName[ document.body.nodeType ]) 

您可以使用 Object.keys 訪問任何對象的鍵列表。 由於 Node 是一個對象,只需使用它的鍵列表並使用 nodeType 的值訪問鍵名。

 let bodyIs = document.getElementsByTagName('body')[0]; console.log(bodyIs, Object.keys(Node)[bodyIs.nodeType])
 <html> <head /> <body /> </html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM