亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript中的children和childNodes有什么區別?

JavaScript中的children和childNodes有什么區別?

UYOU 2019-07-31 15:14:04
JavaScript中的children和childNodes有什么區別?我發現自己使用JavaScript和我對面跑去childNodes和children性能。我想知道它們之間的區別是什么。另一個是另一個優先選擇?
查看完整描述

3 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

.children是元素的屬性。只有Elements有子節點,這些子節點都是Element類型。


但是Node.childNodes的屬性。可以包含任何節點。.childNodes


所以一個具體的例子就是


var el = document.createElement("div");

el.textContent = "foo"

el.childNodes.length === 1; // TextNode is a node child

el.children.length === 0; // no Element children

當然.children是DOM4所以瀏覽器支持是不穩定的,但是如果你使用DOM-shim,你的跨瀏覽器問題就會消失!


大多數時候你想使用,.children因為通常你不想在DOM操作中循環遍歷TextNodes或Comments。


如果您確實想要操作TextNodes,則可能需要.textContent。


查看完整回答
反對 回復 2019-07-31
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

Element.children僅返回元素子元素,同時Node.childNodes返回所有節點子元素。請注意,元素是節點,因此兩者都可以在元素上使用。

我相信childNodes更可靠。例如,MDC(上面鏈接)指出,IE僅children在IE 9中正確使用。瀏覽 childNodes器實現者提供的錯誤空間較小。


查看完整回答
反對 回復 2019-07-31
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

 到目前為止,答案很好,我只想補充一點,你可以使用以下方法檢查節點的類型nodeType:


yourElement.nodeType


這會給你一個整數:(取自這里)


| Value |             Constant             |                          Description                          |  |

|-------|----------------------------------|---------------------------------------------------------------|--|

|    1  | Node.ELEMENT_NODE                | An Element node such as <p> or <div>.                         |  |

|    2  | Node.ATTRIBUTE_NODE              | An Attribute of an Element. The element attributes            |  |

|       |                                  | are no longer implementing the Node interface in              |  |

|       |                                  | DOM4 specification.                                           |  |

|    3  | Node.TEXT_NODE                   | The actual Text of Element or Attr.                           |  |

|    4  | Node.CDATA_SECTION_NODE          | A CDATASection.                                               |  |

|    5  | Node.ENTITY_REFERENCE_NODE       | An XML Entity Reference node. Removed in DOM4 specification.  |  |

|    6  | Node.ENTITY_NODE                 | An XML <!ENTITY ...> node. Removed in DOM4 specification.     |  |

|    7  | Node.PROCESSING_INSTRUCTION_NODE | A ProcessingInstruction of an XML document                    |  |

|       |                                  | such as <?xml-stylesheet ... ?> declaration.                  |  |

|    8  | Node.COMMENT_NODE                | A Comment node.                                               |  |

|    9  | Node.DOCUMENT_NODE               | A Document node.                                              |  |

|   10  | Node.DOCUMENT_TYPE_NODE          | A DocumentType node e.g. <!DOCTYPE html> for HTML5 documents. |  |

|   11  | Node.DOCUMENT_FRAGMENT_NODE      | A DocumentFragment node.                                      |  |

|   12  | Node.NOTATION_NODE               | An XML <!NOTATION ...> node. Removed in DOM4 specification.   |  |

請注意,根據Mozilla:


以下常量已被棄用,不應再使用:Node.ATTRIBUTE_NODE,Node.ENTITY_REFERENCE_NODE,Node.ENTITY_NODE,Node.NOTATION_NODE


查看完整回答
反對 回復 2019-07-31
  • 3 回答
  • 0 關注
  • 1125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號