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中for in 和for of的區別JavaScript
- JavaScript中==和===的區別JavaScript
- javascript push 和 concat 的區別JavaScript
- JavaScript方法和函式區別JavaScript函式
- JavaScript map和reduce的區別JavaScript
- Python之“==”和“is”區別Python
- 在 JavaScript 中,exec() 和 match() 區別JavaScript
- javascript中break和continue的區別和作用JavaScript
- javascript原始值和引用值型別及區別JavaScript型別
- 【JavaScript】offset、client、scroll、mouseover和mouseenter區別JavaScriptclient
- 知識點,JavaScript與Java之間有什麼區別和聯絡?JavaScript
- XML和HTML的主要區別、 jQuery 能做什麼?JavaScript中的“=、==、===”區別?XMLHTMLjQueryJavaScript
- Java之InetSocketAddress和SocketAddress的區別Java
- Java之.class和.getClass()的區別Java
- @Bean和@Component之間的區別?Bean
- Java之for(;;)和while(true)的區別JavaWhile
- querySelector和getElementById之間的區別
- MySQL之Where和Having的區別MySql
- 敏捷和 Scrum 之間的區別敏捷Scrum
- 面試之 get 和 post 區別面試
- JavaScript與ECMAScript 區別JavaScript
- JavaScript 與TypeScript區別JavaScriptTypeScript
- JavaScript中的“=、==、===”區別JavaScript
- JavaScript函式宣告和函式表示式區別JavaScript函式
- Python和JavaScript在使用上有什麼區別?PythonJavaScript
- JavaScript基本資料型別之undefined和nullJavaScript資料型別UndefinedNull
- MVC,MVP和MVVM之間的區別MVCMVPMVVM
- Android之drawable和mipmap目錄區別Android
- C++中L和_T()之區別C++
- CSS之Display、Visbility和Opactity的區別CSS
- return,continue和break之間的區別
- JavaScript undefined與null區別JavaScriptUndefinedNull
- Javascript中“==”與“===”的區別JavaScript
- JavaScript兩個等號和三個等號區別JavaScript
- JavaScript客戶端document物件和window物件的區別JavaScript客戶端物件
- JavaScript 中的 Var,Let 和 Const 有什麼區別JavaScript
- 淺析HTML、CSS、JavaScript之間的聯絡與區別!HTMLCSSJavaScript