1. NodeList是一中类数组对象,用于保存一组有序的节点
  2. 可以通过方括号来访问NodeList的值,他有item()方法与length属性。
  3. 他并不是Array的实列,没有数组对象的方法。

    如何拿到nodeList?

var box = document.getElementById('box');
var nodes = box.childNodes;

这样就可以拿到nodeList,我们可以在控制台看到

常用属性和方法
1.我们可以通过方括号来拿到节点,如:

        var box = document.getElementById('box');var nodes = box.childNodes;console.log(nodes[1]);

控制台就会打印出对应节点

2.也可以通过下面的方法访问节点

        console.log(nodes.item(1));

得到的效果是一样的

验证nodeList不是数组

        var box = document.getElementById('box');var nodes = box.childNodes;console.log(nodes.push('<li>2222</li>'));

这是控制台就会报错(push这个方法未定义);
说明其不是数组。

怎样让他像数组呢?
你可能已经才到通过遍历把它转化为数组。

        var box = document.getElementById('box');var nodes = box.childNodes;function makeAarry(nodelist){var arr = [];for(var i=0,len = nodelist.length;i<len;i++){arr.push(nodelist[i]);}return arr;}var shownode = makeAarry(nodes);console.log(shownode);

这里还可以通过数组原形属性来实现

        var box = document.getElementById('box');var nodes = box.childNodes;function makeAarry(nodelist){// var arr = [];// for(var i=0,len = nodelist.length;i<len;i++){//     arr.push(nodelist[i]);// }// return arr;return Array.prototype.slice.call(nodelist);}var shownode = makeAarry(nodes);console.log(shownode);

效果是一样的(这个浏览器兼容是ie9+);

实现兼容方法

         var box = document.getElementById('box');var nodes = box.childNodes;function makeAarry(nodelist){var arr = null;try{arr = Array.prototype.slice.call(nodelist);}catch(e){arr = [];for(var i=0,len = nodelist.length;i<len;i++){arr.push(nodelist[i]);}}// var arr = [];// for(var i=0,len = nodelist.length;i<len;i++){//     arr.push(nodelist[i]);// }return arr;//return Array.prototype.slice.call(nodelist);}var shownode = makeAarry(nodes);console.log(shownode);

javascript 中的nodeList理解相关推荐

  1. javascript中 (function(){})();如何理解?

    javascript中 (function(){})();如何理解? javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环 ...

  2. 谈谈JavaScript中function多重理解

    JavaScript 中的 function 有多重意义.它可能是一个构造器(constructor),承担起对象模板的作用: 可能是对象的方法(method),负责向对象发送消息.还可能是函数,没错 ...

  3. Javascript中你必须理解的执行上下文和调用栈

    执行上下文在 JavaScript 是非常重要的基础知识,想要理解 JavaScript 的执行过程,执行上下文是你必须要掌握的知识.否则只能是知其然不知其所以然. 理解执行上下文有什么好处呢? 它可 ...

  4. javascript中的面向对象理解(一)

    一.注意:提到"面向对象"这一概念,众所周知,javascript中的面向对象思想与其他的编程语言(例如:PHP.Java等)是有着很大区别的.因此,我们先复习下,传统意义上,面向 ...

  5. javascript中bind函数理解

    bind函数会创建一个新的函数体: bind函数第一个参数是改变this的指向,第二个以及之后的每个参数都是传进去原来的函数参数: bind函数是在Function原型上的: bind 函数可以用来递 ...

  6. JavaScript中事件回顾

    事件其实在第一次学习JavaScript的时候就接触了,一行非常简单的代码 alert('Hello JavaScript!!!')就诠释了什么是事件.事件是什么呢?事件在基于浏览器编程的语言Java ...

  7. JavaScript中undefined详解

    目录 一.前言 二.undefined的特点 1.undefined既是JavaScript中的原始数据类型之一,也是一个原始值数据 2.undefined是全局对象上的一个属性 3.undefine ...

  8. 深入理解javascript中的立即执行函数(function(){…})()

    2019独角兽企业重金招聘Python工程师标准>>> javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各 ...

  9. JavaScript中的call、apply、bind深入理解

    一.函数的三种角色 首先要先了解在函数本身会有一些自己的属性,比如: length:形参的个数: name:函数名: prototype:类的原型,在原型上定义的方法都是当前这个类的实例的公有方法: ...

最新文章

  1. 当统计信息不准确时,CBO可能产生错误的执行计划,并在10053 trace中找到CBO出错的位置示例...
  2. F# ≥ C# (Record)
  3. 常见的Java WEB服务器
  4. zabbix监控之Centos基于LNMP环境安装
  5. python 无法引入同级目录的方法_再见 virtualenv!K神教你轻松管理多个Python环境...
  6. mysql多源复制 知乎_技术分享 | MySQL 多源复制场景分析
  7. python 条件查询_Python SQLAlchemy 不确定条件查询
  8. excel VBA编程番外篇(字典+正则表达式+FSO)-曾贤志-专题视频课程
  9. 10位Swift和iOS开发大师
  10. 【289】生命游戏(Game Of Life)
  11. mysql 字符串有有乱码 转码_mysql字符转化以及乱码原因
  12. 2022年ICASSP说话人日志(Speaker Diarization)方向论文泛读总结
  13. 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学系学位设置
  14. NoScope:极速视频目标检测
  15. 再见了繁琐的Excel,掌握数据分析处理技术就靠它了
  16. foxmail发邮件时总提示接收密码错误是怎么回事
  17. 电脑端和手机端的网站SEO优化的排名是否同步?
  18. (转)如何有效地管理好技术团队?
  19. 【编程语言】Lua完全自学手册
  20. android手机root status,相应黑科技梳理

热门文章

  1. 有源码的java安卓游戏_android游戏妄撮java源码
  2. 隐函数和参数方程的二阶导数(新绿)
  3. Unity3D游戏开发初探—4.开发一个“疯狂击箱子”游戏
  4. 【我的Android进阶之旅】解决安装apk时出现错误:INSTALL_FAILED_CONFLICTING_PROVIDER : Package couldn‘t be installed in
  5. 谷歌 G1 android APK安装器 离线安装软件
  6. python爬虫有什么实际作用-Python爬虫的作用与地位(附爬虫技术路线图)
  7. SAP启用批次管理相关报错
  8. for do done重定向
  9. 微信小程序之地图导航,路线规划
  10. 李嘉诚先生给年轻人的忠告