JavaScript之childNodes 和 children 區別
1、先讓我們來看看childNodes的用法,以及是如何計算節點數量:
為什麼輸出是7而不是3呢?原來Internet Explorer 會忽略節點之間生成的空白文字節點(比如換行字元),而 Mozilla 不這麼做。
2、兩者區別:
children() 方法返回被選元素的所有直接子元素。因此上面直接輸出3。
注意:children()在IE中包含註釋節點。
總結:
1、不建議使用childNodes方法。
硬要使用這個方法,可以通過nodeType來判斷是哪種型別的節點,只有當nodeType==1時才是元素節點,2是屬性節點,3是文字節點。因此我們可以通過這樣判斷:
if (nodes.childNodes[i].nodeType == 1) {
// nodes.childNodes[i] 是元素節點
}
2、使用children方法時,不要使用註釋。
3、推薦使用:
var arr = nodes.getElementsByTagName("li");
arr[ i ].xxx
相關文章
- JavaScript childNodesJavaScript
- JavaScript childrenJavaScript
- JavaScript中for in 和for of的區別JavaScript
- Java和Javascript的區別JavaScript
- JavaScript方法和函式區別JavaScript函式
- JavaScript和Java的區別(轉)JavaScript
- javascript push 和 concat 的區別JavaScript
- javascript陣列和物件的區別JavaScript陣列物件
- 在 JavaScript 中,exec() 和 match() 區別JavaScript
- Python之“==”和“is”區別Python
- javascript物件和php物件和json區別JavaScript物件PHPJSON
- javascript原始值和引用值型別及區別JavaScript型別
- 【JavaScript】offset、client、scroll、mouseover和mouseenter區別JavaScriptclient
- JavaScript中Map和ForEach的區別JavaScript
- 面試之 get 和 post 區別面試
- count(*) 和count(column)之區別
- javascript中break和continue的區別和作用JavaScript
- 知識點,JavaScript與Java之間有什麼區別和聯絡?JavaScript
- XML和HTML的主要區別、 jQuery 能做什麼?JavaScript中的“=、==、===”區別?XMLHTMLjQueryJavaScript
- JavaScript函式和方法區別演示程式碼JavaScript函式
- Javascript內建變數top和parent區別JavaScript變數
- 敏捷和 Scrum 之間的區別敏捷Scrum
- Java之for(;;)和while(true)的區別JavaWhile
- Statement和PreparedStatement之間的區別
- JavaScript 基本資料型別和引用型別的區別詳解JavaScript資料型別
- JavaScript 與TypeScript區別JavaScriptTypeScript
- JavaScript與ECMAScript 區別JavaScript
- JavaScript中的“=、==、===”區別JavaScript
- javascript中集合、陣列和物件的區別和關係JavaScript陣列物件
- JavaScript函式宣告和函式表示式區別JavaScript函式
- 一文讀懂 JavaScript 和 ECMAScript 的區別JavaScript
- JavaScript 中 Property 和 Attribute 的區別詳解JavaScript
- jQuery children()jQuery
- MySQL之Where和Having的區別MySql
- @Bean和@Component之間的區別?Bean
- MVC,MVP和MVVM之間的區別MVCMVPMVVM
- Java之.class和.getClass()的區別Java
- C++中L和_T()之區別C++