(一)类数组对象NodeList

article/2025/10/6 8:42:39

NodeList对象的特点:

  NodeList是一种类数组对象,用于保存一组有序的节点。

  可以通过方括号语法来访问NodeList的值,有item方法与length属性。

  它并不是Array的实例,没有数组对象的方法。

通过demo简单了解一下NodeList:

html:

<ul id="box">  <li>节点一</li><li>节点二</li><li>节点三</li>  
</ul>

Js:

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

控制台结果如下:

可见其原型对象为 NodeList,有item方法与length属性。

 

为什么说NodeList是类数组,不是真正的数组:

var oUl = document.getElementById("box")
var nodes = oUl.childNodes
nodes.push("<li>节点四</li>");

控制台结果如下:

说明nodes没有push()方法,不是数组。

 

那么我们如何将类数组转化为数组呢?

方法一:

    var oUl = document.getElementById("box");var nodes = oUl.childNodes;//nodes.push("<li>节点四</li>");function makeArray(nodeList) {var arr = [];for(var i=0,l=nodeList.length; i<l; i++){arr[i] = nodeList[i]}return arr}var newNodeList = makeArray(nodes);newNodeList.push("<li>节点四</li>");console.log(newNodeList)

结果如下:

此时这个数组的原型对象是Array。

方法二:

var oUl = document.getElementById("box");
var nodes = oUl.childNodes;
function makeArray(nodeList) {return Array.prototype.slice.call(nodeList);
}
var newNodeList = makeArray(nodes);
newNodeList.push("<li>节点四</li>");
console.log(newNodeList)

结果如下:

 

使用call方法在IE8及更低版本浏览器中存在兼容问题,解决方案如下:

1、使用apply方法(摘自:https://www.cnblogs.com/wangmeijian/p/4936939.html):

Array.prototype.concat.apply([],nodes).slice(0)

2、上代码:

var box = document.getElementById("box");
var nodes = box.childNodes;
function makeArray(nodeList){var arr = null;try {return Array.prototype.slice.call(nodeList);}catch (e){arr = new Array();for(var i = 0, len = nodeList.length; i < len; i++){arr.push(nodeList[i]);}}return arr;
}
var newNodeList = makeArray(nodes);
newNodeList.push("<li>节点四</li>");
console.log(newNodeList);

 

转载于:https://www.cnblogs.com/hjbky/p/8426163.html


http://chatgpt.dhexx.cn/article/2TAXsv17.shtml

相关文章

javascript 中的nodeList理解

NodeList是一中类数组对象&#xff0c;用于保存一组有序的节点可以通过方括号来访问NodeList的值&#xff0c;他有item()方法与length属性。他并不是Array的实列&#xff0c;没有数组对象的方法。 如何拿到nodeList? var box document.getElementById(box); var nodes box.…

arvix日报0522

1. 3d semantic map Dense Semantic 3D Map Based Long-Term Visual Localization with Hybrid Features

arvix日报0521

1. [paopao] Model Free Calibration of Wheeled Robots Using Gaussian Process 没看懂 2. 西安交大2019icra&#xff0c;介绍一种semantic 3d map方法&#xff0c;基于orb-slam融合语义分割信息融合GPS定位数据提供拓扑地图的方法&#xff0c;用kitti数据库 Visual Semanti…

虚拟现实VR|增强现实AR和人工智能AI结合

1、前言&#xff1a; 近年溺水于CV苦海无法自拔&#xff0c;好久没关注VR或VR引擎了 &#xff0c;记得看2018年Unite Beijing 2018论坛的报道里&#xff0c;Unity AI与机器学习副总裁Danny Lange分享了ML-Agents的新进展。当时稍微关注了下&#xff0c;Danny Lange在加入Unity…

如何将Vufroria 、ARCore和ARkit结合使用

如果想使用Vuforia的卡牌识别&#xff0c;又想加入ARCore和ARKit的平面识别功能。解决办法就是将Vuforia与AR Foudation结合使用。 环境配置 Unity版本&#xff1a;2018.4.2f1以上版本 ARFoundation SDK版本&#xff1a;arfoundation-samples-1.5-preview 下载地址&#xff1a…

ARC

自动引用计数&#xff08;ARC&#xff09;&#xff0c;是一项为Objective - C程序在编译时提供自动内存管理的功能。ARC可以让你把注意力集中在你感兴趣的代码&#xff0c;对象图&#xff0c;和你的应用程序中的对象之间的关系&#xff0c;让你不必再花费精力在retain和release…

ARVR技术 | AR, VR, MR和XR?想搞清楚不?

AR, VR, MR&#xff0c;现在还有XR ?这些缩写是什么?它们代表什么? 让我们快速梳理一下技术术语。 首先&#xff0c;虽然你可能熟悉其中的一些术语&#xff0c;如AR和VR, 但MR和XR对许多人来说仍然是新鲜的术语。 目前的共识是&#xff0c;所有这些互补形式的现实都落在一…

VR与AR简史

点击上方“LiveVideoStack”关注我们 翻译&#xff1a;Alex 技术审校&#xff1a;周昌印 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 VR的历史可以追溯到20世纪60年代。早在1961年&#xff0c;Phlico公司的Charles Comeau和James Bryan就开发了一款头显设备…

【iOS】ARC实现

ARC由以下工具来实现&#xff1a; clang&#xff08;LLVM编译器&#xff09;3.0以上objc4 Objective-C运行时库493.9以上 下面我们&#xff0c;我们将围绕clang汇编输出和objc4库的源代码探究ARC实现 1. __strong修饰符 1.1 赋值给附有__strong修饰符的变量 看下面代码 {…

arvix日报0615

百度的阿波罗开源平台架构 Data Driven Prediction Architecture for Autonomous Driving and its Application on Apollo Platform Kecheng Xu, Xiangquan Xiao, Jinghao Miao, Qi Luo Autonomous Driving vehicles (ADV) are on road with large scales. For safe and eff…

【arVix 2021】Masked Autoencoders Are Scalable Vision Learners(MAE)

文章目录 摘要引言方法maskingMAE encoderMAE decoderReconstruction target.Simple implementation. 总结广泛的影响 摘要 本文证明了遮罩自动编码器(MAE)是一种可扩展的计算机视觉自监督学习器。我们的MAE方法很简单:我们掩盖输入图像的随机补丁&#xff0c;并重建缺失的像素…

Corner Cases for Visual Perception in Automated Driving: Some Guidance on Detection ... (arVix 2021)

Corner Cases for Visual Perception in Automated Driving: Some Guidance on Detection Approaches - 自动驾驶中视觉感知的极端案例&#xff1a;检测方法的一些指导&#xff08;arVix 2021&#xff09; 摘要1. 引言2. 极端案例系统化3. 展示极端案例4. 检测方法的概念5. 关联…

大数据可视化技术栈

作者&#xff1a;微澜潮生 链接&#xff1a;https://www.zhihu.com/question/19710815/answer/18592659 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。

大数据可视化期末复习

大数据可视化期末复习 题型考点范围&#xff1a;选择填空判断知识点简述题编程题绘图和例图 题型 选择题&#xff08;30分 /2’&#xff09;判断题&#xff08;10分 /1’&#xff09;填空题&#xff08;20分 /1’&#xff09;简述题&#xff08;24分 /6’&#xff09;编程题&a…

特征可视化技术(CAM)

https://zhuanlan.zhihu.com/p/269702192 CAM技术可以帮助我们理解CNN在图像中寻找目标对象的过程&#xff0c;并且可以用于可视化CNN的中间层特征&#xff0c;以及对图像分类结果的解释和可视化。CAM技术的实现比较简单&#xff0c;可以使用常用的深度学习框架如PyTorch和Te…

大数据可视化学期总结

学期总结 知识点总结个人总结 知识点总结 个人总结 在本学期的开始&#xff0c;我们接触了一门新兴的课程—大数据可视化。数据可视化&#xff0c;是关于数据视觉表现形式的科学技术研究。其中&#xff0c;这种数据的视觉表现形式被定义为&#xff0c;一种以某种概要形式抽提出…

深度神经网络可视化技术

深度神经网络可视化技术 深度学习模型表述的难点与意义深度神经网络的可视化云脑 Deepro 采用的 CNN 可视化独立单元激活的可视化图案和区域生成法云脑 Deepro 采用的 RNN 可视化LSTM 解释元与激活门统计 人工智能模型可视化实例结语 深度学习模型表述的难点与意义 深度神经网…

三维可视化技术的应用现状及发展前景

地质体的三维建模与可视化结合基础的自然地理数据信息、钻孔数据信息、物探解译模型数据信息&#xff0c;运用有关技术搭建三维空间数据场&#xff0c;选用硬件配置技术完成系统化。它应用可视化技术揭示了地下世界&#xff0c;是地质学的前沿课题研究之一。以可视化技术为基础…

大屏可视化关键技术

大屏可视化的技术中涉及的范围会比较广&#xff0c;拆开来说诸如各种LED视频技术、互联网技术、智能技术、视觉设计技术等等这些技术&#xff0c;都是跟大屏可视化有着千丝万缕断不开的关系&#xff0c;但真正影响到大屏可视化关键技术却在于下面的3点上。 大屏可视化关键技术&…

大数据可视化技术与应用作业一的经验总结

大数据可视化技术与应用的作业一总结 可视化课的第一次作业&#xff0c;老师让我们参照课本做出个性化的词云图&#xff0c;以下是此次做作业过程中关于背景色&#xff0c;成品效果不好等等问题的总结。 最终做出的词云图&#xff1a; 这是我参考书本上的例子经修改过后运行…