将childNodes返回的数据转化维数组的方法

news/2024/7/7 7:31:28 标签: NodeList, prototype.slice.call, array, DOM
 1 //将childNodes返回的数据转化为数组的方法
 2             function convertToArray(nodes){
 3                 var array=null;
 4                 try{
 5                     array=Array.prototype.slice.call(nodes,0);
 6                 }catch(ex){
 7                     array=new Array();
 8                     for(var i=0,len=nodes.length;i<len;i  ){
 9                         array.push(nodes[i]);
10                     }
11                 }
12                 return array;
13             }
14             //筛选节点的方法
15             function getElementList(arr,value){
16                 var arrList=new Array();
17                 for(var i=0,len=arr.length;i<len;i  ){
18                     if(arr[i].nodeType==value){
19                         arrList.push(arr[i]);
20                     }
21                 }
22                 return arrList;
23             }

   每一个节点都有一个childNodes属性,其中保存着NodeList对象。NodeList是一种类数组对象,用于保存一组有序的节点,可以用过位置来访问这些节点。不过需要大家注意的是,虽然我们可以通过方括号来访问对象,且NodeList也有length属性,但它并不是Array的实例。

  当然,我们也可以通过item()方法来访问NodeList中的节点,就像使用方括号一样,可以进行访问。这两种无论哪种方式都没有问题,而且因为方括号的简便性,所以更受开发人员的青睐。

  在此,笔者仍然推荐以上的NodeList转数组的方法,但是因为在IE8及以下是不支持Array.prototypr.slice.call(soneNode.childNodes,0);这样的方法,所以我们只能通过枚举的方式,将NodeList转化维数组。try-catch捕获错误,并手动创建数组。


http://www.niftyadmin.cn/n/1733050.html

相关文章

extremetable改装

http://www.icnote.com/Extreme-Table/在一个项目中用到了extremetable&#xff0c;但是有些的体现形式还不符合业务的需求&#xff0c;所以做了些改动。下面贴出来&#xff0c;供大家参考&#xff1a;主要增加功能&#xff1a;加入 全选 反选 全不选 的按钮&#xff0c;外观…

web端 css hack(一)

逢10月小长假&#xff0c;几天不敲键盘&#xff0c;浑身难受。也是有时间分享一下自己遇到的css问题。先说一下什么css hack 简单介绍一下css hack&#xff1a; 定义&#xff1a; 一般都是利用各浏览器的支持CSS的能力和BUG来进行的&#xff0c;可以分为能力选择和怪癖选择(BU…

将本地已有项目添加到gitee仓库中

陈拓 2021/09/16-2021/09/17 1. 创建gitee仓库hk-Console 新建 点击 仓库地址 https://gitee.com/linkdle/hk-console 2. 克隆hk-Console 我的系统克隆hk-Console到本地 git clone https://gitee.com/linkdle/hk-console.git 查看hk-console 进入目录hk-console cd hk-cons…

修改git commit的注释

2021/09/17-2020/09/17 在《将本地已有项目添加到gitee仓库中》 https://zhuanlan.zhihu.com/p/411306340 https://blog.csdn.net/chentuo2000/article/details/120345622 一文中我们已经发布(push)了几个项目到gitee仓库&#xff0c; 下面我们将远程的注释“海康NVR工具集…

01html基础

01_html 1 Mac中的快捷键 基础快捷键&#xff1a; command c 复制command v 粘贴command m 最小化当前窗口Shift command c 桌面环境打开Findercommand space 输入法切换fn F3 快速显示桌面command tab 切换应用程序command shift N 在打开Finder后快速建立文件夹command sh…

Oracle 用户数据字典 以及 查询表字段

http://www.blogjava.net/xiaohewoai/archive/2010/02/01/311532.html查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_role_privs; 查看当前用户的系统权限和表级权限 SQL>select * f…

git上传修改过的代码和创建标签

2021/09/18-2021/12/27 在《将本地已有项目添加到gitee仓库中》 https://zhuanlan.zhihu.com/p/411306340 https://blog.csdn.net/chentuo2000/article/details/120345622 一文中我们已经发布(push)了几个项目到gitee仓库。 在《修改git commit的注释》 https://zhuanlan.…

extremetable+hibernate实现分页 关于结合hibernate后台数据分页和eXtremeTable分页功能的使用 ...

http://blog.csdn.net/tigerflower/archive/2006/08/22/1105036.aspxeXtremeComponents是一系列提供高级显 示的开源JSP定制标签。当前的包含 的组件为eXtremeTable&#xff0c;用于以表的形式显示数据。eXtremeTable提 供了一个很好的分页特性&#xff0c;但是如何结合hiberna…