节点NODE
1、整个文档是一个文档节点 * 每个 XML 标签是一个元素节点 * 包含在 XML 元素中的文本是文本节点 * 每一个 XML 属性是一个属性节点 * 注释属于注释节点
2. 获取NODE的方式
2.1 通过获取元素的方式获取NODE -
document.getElementById("elementID"); //最重要
document.getElementsByTagName("tagname");
document.getElementsByName("name");
document.getElementsByClassName("classname");
2.2 通过NODE关系属性获得引用
* object.parentNode: 获取该元素父节点
* object.childNodes: 获取对象所有的子节点,只包含次级节点
* object.firstChild: 获取该元素第一个子节点
* object.lastChild: 获取该元素最后一个子节点
* object.nextSibling: 获取该下一个兄弟节点
* object.previousSibling: 获取该元素上一个兄弟节点
3. NODE属性
节点中文 nodeType(节点类型) nodeName(节点名) nodeValue(节点值)
元素 1 TagName null
属性 2 attr 属性值
文本 3 #text 文本值
注释 8 #comment 注释文字
文档 9 #document null
4. NODE 增, 删, 查, 改
4.1 创建NODE
创建元素节点 - document.creatElement(TagName);
创建属性节点 - document.createAttribute(attr);
- object.attr = val;
- object.setAttribute(attr, val);
创建文本节点 - object.innerText = val;
- document.createTextNode(text);
4.2 添加NODE - parentNode.appendChild(newNode); 说明: 向节点的子节点列表的末尾添加新的子节点。如果文档树中已经存在了 newNode,它将从文档树中删除,然后重新插入它的新位置。可以使用 appendChild() 方法移除元素到另外一个元素。
第一步:新建元素:createElement
第二步:新建文本:createTextNode
第三步:获取已有的元素:parentNode
第四步:新增标签:appendChild
4.3 插入NODE - parentNode.insertBefore(newNode,existingNode); 说明: 如果文档树中已经存在了 newNode,它将从文档树中删除,然后重新插入它的新位置。
4.4 替换NODE - parentNode.replaceChild(newNode,oldNode) 说明: 如果文档树中已经存在了 newNode,它将从文档树中删除,然后重新插入它的新位置。
4.3 删除NODE - parentNode.removeChild(node); 说明: 从子节点列表中删除某个节点
第一步:找到元素节点:a
第二步:找到要删除的元素:b
第三步:执行删除:c
b.parentNode.removed(b);
5、cloneNode(deep):创建节点的拷贝,它会克隆所有的属性和值
6、inserBefore():在指定的已有子节点之前插入新的子节点
eg://节点操作
// console.log(document.getElementById("li2").parentNode);//父节点
// console.log(document.getElementById("ul").childNodes.length);//所有子节点
// console.log(document.getElementById("ul").firstElementChild);//第一个元素节点
// console.log(document.getElementById("ul").firstChild);//第一个子节点
// console.log(document.getElementById("ul").lastChild.textContent);//最后一个子节点
// console.log(document.getElementById("li2").nextSibling);//下一个兄弟子节点
// console.log(document.getElementById("li2").previousSibling);//上一个兄弟节点
//节点类型判断
// var li2=document.getElementById("li2");
// console.log(document.getElementById("li2").nodeType);//1元素
// console.log(document.getElementById("li2").childNodes[0].nodeType);//3文本
// console.log(li2.nodeName);//节点名称
// console.log(li2.nodeValue);//节点值,元素节点值
// console.log(li2.textContent);//元素的文本节点值
//
// console.log(document.getElementById("input1").nodeValue);//input输入框测试
//创建节点
// var li2=document.getElementById("li2");
// var ul=document.getElementById("ul");
//
// console.log(document.createElement("p"));//创建元素
//
// document.createAttribute("class");//创建属性
// li2.className="li222";
// console.log(li2);
// li2.setAttribute("class","li2");//创建,更改属性
// console.log(li2);
// document.getElementById("li2").setAttribute("style","fontSize:20px;color:red");//内嵌
// console.log(document.createTextNode("我是新创建的文本节点"));//创建文本
//增加节点
// var div=document.createElement("div");//创建元素
// var tet=document.createTextNode("我是新创建的div");//创建文本
// div.appendChild(tet);//元素中新增文本
// var add=document.getElementById("li2");//找到一个已有元素
// add.appendChild(div);//在已有元素中新增元素文本
//删除节点
// var ul=document.getElementById("ul");
// var li2=document.getElementById("li2");
// ul.removeChild(li2);//找到父元素再删除
// li2.parentNode.removeChild(li2);//直接找到父元素删除
//替换节点
// var ul=document.getElementById("ul");
// var li2=document.getElementById("li2");
// var li5=document.getElementById("li5");
// ul.replaceChild(li2,li5);//li2替换li5,li2原位置内容彻底消失
//克隆节点
// var li2=document.getElementById("li2");
//// li2.cloneNode("我是复制的li3");
// li2.appendChild(li2.cloneNode("我是复制的li3"));//克隆的是所有属性及其值,通过新增节点显示
//插入节点
var div=document.createElement("div");//创建元素
var tet=document.createTextNode("我是新创建的div");//创建文本
div.appendChild(tet);//元素中新增文本
var li2=document.getElementById("li2");//找到一个已有元素
li2.insertBefore(div,li2.childNodes[0]);//找到这个已有元素的首个子节点,在这个已有元素之前,插入这个新增元素文本
节点NODE的更多相关文章
- DOM 节点node
DOM可以将任何HTML或XML文档描绘成一个有多层节点构成的结构,即在HTML中所有内容都是节点.文档节点是每个文档的根节点,文档节点有一个子节点,称为文档元素.每个文档只能有一个文档元素.在HTM ...
- Cocos2d-x 3.0final 终结者系列教程07-画图节点Node
在Cocos2d-x中全部能看到的都是引擎调用底层图形库函数绘制完毕的. Cocos2d-x将屏幕全部要绘制的全部内容逻辑上保存到一个场景Scene中(尺寸通常会和屏幕大小一致) 而在Scene中又包 ...
- elasticsearch负载均衡节点——客户端节点 node.master: false node.data: false 其他配置和master 数据节点一样
elasticSearch的配置文件中有2个参数:node.master和node.data.这两个参 数搭配使用时,能够帮助提供服务器性能. 数据节点node.master: false node. ...
- Linux内存描述之内存节点node–Linux内存管理(二)
日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.7 X86 & arm gatieme LinuxDeviceDrivers Linux内存管理 #1 ...
- Longhorn 企业级云原生分布式容器存储-券(Volume)和节点(Node)
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生分布式块存储解决方案设计架构和概念 Longhorn 企业级云原生容器存储解决方 ...
- cocos2d-x 3.0 画图节点——Node
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- 层次节点——NODE节点
1.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...
- 使用ROS节点——Node & Master——roscore、rosrun、rosnode
1.Node 在ROS的世界里, 最小的进程单元就是节点( node) . 一个软件包里可以有多个可执行文件, 可执行文件在运行之后就成了一个进程(process), 这个进程在ROS中就叫做节点. ...
- Cocos2d-x 3.0final 终结者系列教程08-画图节点Node中的锚点和坐标系
图片问答,(仅仅要回答正确,锚点和坐标系就学会了) 1.下图一共同拥有几个填充为淡黄色的实心矩形? 选择:A,2个 B, 4个 C,1个 D,16个 答案.B.4个 2.下图的4个实心矩形排列在几行 ...
随机推荐
- 移动端web开发基础概念
最近在了解移动端web开发的相关知识,有些概念总是模糊不清,这次花费了一些时间整体的梳理了一遍. 分辨率 分辨率可以从显示分辨率与图像分辨率两个方向来分类.显示分辨率(屏幕分辨率)是屏幕图像的精密度, ...
- rabbitmq 3.6 延时消息
rabbitmq-plugins enable rabbitmq_delayed_message_exchange #安装插件 https://github.com/rabbitmq/rabbitmq ...
- java内存泄漏的经典案例
这篇文章主要介绍了Java中典型的内存泄露问题和解决方法,典型的内存泄露例子是一个没有实现hasCode和 equals方法的Key类在HashMap中保存的情况,可以通过实现Key类的equals和 ...
- ios framework 分离与合并多种CPU架构,分离与合并模拟器与真机
ios framework 分离与合并多种CPU架构,分离与合并模拟器与真机 如果你所用的framework支持真机和模拟器多种CPU架构,而你需要的是其中的一种或几种,那么可以可以从framewo ...
- Rails中的缓存
最近学习Rails. 看到如下代码: <% if notice %> <p id="notice"><%= notice %></p> ...
- 进fastreboot
1.红米1s 关机后,开机键+音量键下 同时按 2.红米note 关机后,开机键+音量键上 同时按 3. 4. 5.
- Android开发之Git配置
Android开发之Git配置 1.首先git配置: 输入命令: git config --global user.name "xxx.xx" git config --globa ...
- webstorm自动编译typescript
http://bbs.egret.com/thread-1752-1-1.html http://bbs.egret.com/thread-1912-1-1.html
- SSIS学习笔记
SSIS全称(Sql Server Integration Services),是 Microsoft BI 解决方案的一大利器.除了作为ETL的一种工具,在以下方面还有着突出的表现: (1) 系统维 ...
- 组件嵌套+Mixin函数demo
非DOM属性:1.dangerouslysetInnerHTML(xxs跨站攻击) 2.key 3.ref 编写组件嵌套 <!DOCTYPE html><html> < ...