节点_节点电压法 - CSDN
精华内容
参与话题
  • 节点

    千次阅读 2013-09-24 07:24:22
    节点 节点类型 DOM定义了Node的接口以及许多种节点类型来表示节点的多个方面! Document——最顶层的节点,所有的其他节点都是附属于它的。DocumentType——DTD引用(使用语法)的对象表现形式,例如。它不能包含子...

    节点

    节点类型

    DOM定义了Node的接口以及许多种节点类型来表示节点的多个方面!

    • Document——最顶层的节点,所有的其他节点都是附属于它的。
    • DocumentType——DTD引用(使用<!DOCTYPE >语法)的对象表现形式,例如<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >。它不能包含子节点。
    • DocumentFragment——可以像Document一样来保存其他节点。
    • Element——表示起始标签和结束标签之间的内容,例如<tag ></tag >或者<tag / >。这是唯一可以同时包含特性和子节点的节点类型。
    • Attr——代表一对特性名和特性值。这个节点类型不能包含子节点。
    • Text——代表XML文档中的在起始标签和结束标签之间,或者CData Section内包含的普通文本。这个节点类型不能包含子节点。
    • CDataSection——<![CDATA[ ]]>的对象表现形式。这个节点类型仅能包含文本节点Text作为子节点。
    • Entity——表示在DTD中的一个实体定义,例如<!ENTITY foo "foo">。这个节点类型不能包含子节点。
    • EntityReference——代表一个实体引用,例如&quot;。这个节点类型不能包含子节点。
    • ProcessingInstruction——代表一个PI(处理指令)。这个节点类型不能包含子节点。
    • Comment——代表注释。这个节点类型不能包含子节点。
    • Notation——代表在DTD中定义的记号。这个很少用到,所以我们不会讨论。

    还定义了对应不同节点类型的12个常量.

    • Node.ELEMENT_NODE (1)
    • Node.ATTRIBUTE_NODE (2)
    • Node.TEXT_NODE (3)
    • Node.CDATA_SECTION_NODE (4)
    • Node.ENTITY_REFERENCE_NODE (5)
    • Node.ENTITY_NODE (6)
    • Node.PROCESSING_INSTRUCTION_NODE (7)
    • Node.COMMENT_NODE (8)
    • Node.DOCUMENT_NODE (9)
    • Node.DOCUMENT_TYPE_NODE (10)
    • Node.DOCUMENT_FRAGMENT_NODE (11)
    • Node.NOTATION_NODE (12)
    节点类型常量都是Node对象的属性,但是IE不支持Node对象,但是仍可以使用数值

    Node接口也定义了一些所有节点类型都包含的特性和方法。我们在下面的表格中列出了这些特性和方法:

    特性/方法 类型/返回类型 说 明
    nodeName String 节点的名字;根据节点的类型而定义,元素节点返回tagName,文本节点返回#text,属性节点返回属性名
    nodeValue String 节点的值;根据节点的类型而定义.元素节点此属性为空,文本节点些属性即为节点中的字符串,属性节点返回属性值
    nodeType Number 节点的类型常量值之一
    ownerDocument Document 指向这个节点所属的文档
    firstChild Node 指向在childNodes列表中的第一个节点
    lastChild Node 指向在childNodes列表中的最后一个节点
    childNodes NodeList 所有子节点的列表
    previousSibling Node 指向前一个兄弟节点;如果这个节点就是第一个兄弟节点,那么该值为null
    nextSibling Node 指向后一个兄弟节点;如果这个节点就是最后一个兄弟节点,那么该值为null
    hasChildNodes() Boolean 当childNodes包含一个或多个节点时,返回真
    attributes NamedNodeMap 包含了代表一个元素的特性的Attr对象;仅用于Element节点
    appendChild(node) Node node添加到childNodes的末尾
    removeChild(node) Node 从childNodes中删除node
    replaceChild (newnode,oldnode) Node 将childNodes中的oldnode替换成newnode
    insertBefore (newnode,refnode) Node 在childNodes中的refnode之前插入newnode

    除节点外,DOM还定义了一些助手对象,它们可以和节点一起使用,但不是DOM文档必有的部分。

    • NodeList——节点数组,按照数值进行索引;用来表示一个元素的子节点。比如childNodes。NodeList有个length属性表示节点数量
    • NamedNodeMap——同时用数值和名字进行索引的节点表;用于表示元素特性。比如元素的attributes。NamedNodeMap对象也有一个length属性来指示它所包含的节点的数量。

    这些助手对象为处理DOM文档提供附加的访问和遍历方法。

    属性节点

    正如前面提到的,即便Node接口已具有attributes方法,且已被所有类型的节点继承,然而,只有Element节点才能有特性。Element节点的attributes属性其实是NamedNodeMap,它提供一些用于访问和处理其内容的方法:

    • getNamedItem(name)——返回nodeName属性值等于name的节点;
    • removeNamedItem(name)——删除nodeName属性值等于name的节点;
    • setNamedItem(node)——将node添加到列表中,按其nodeName属性进行索引;
    • item(pos)——像NodeList一样,返回在位置pos的节点;
    请记住这些方法都是返回一个Attr节点,而非特性值。

    当NamedNodeMap用于表示特性时,其中每个节点都是Attr节点,它的nodeName属性被设置为特性名称,而nodeValue属性被设置为特性的值。示例:

    	<p id="p1" style="background-color:red;" title="P!!!">Some Text!</p>
    	var p1 = document.getElementById("p1");
    	//访问ID属性
    	alert(p1.attributes.getNamedItem("id")).nodeValue;
    	//也可以用数值来访问ID属性
    	alert(p1.attributes.item(0)).nodeValue;
    	//也可以改变它的值
    	p1.attributes.getNamedItem("id").nodeValue = "newP1";

    Attr节点也有一个完全等同于(同时也完全同步于)nodeValue属性的value属性,并且有name属性和nodeName属性保持同步。我们可以随意使用这些属性来修改或变更特性。但这些方法都比较复杂,所以DOM又定义了三个元素方法来帮助访问特性:

    • getAttribute(name)——等于attributes.getNamedItem(name).value
    • setAttribute(name, newValue)——等于attribute.getNamedItem(name).value = newValue
    • removeAttribute(name)——等于attributes.removeNamedItem(name)

    NodeList

    事实上我们早接触过NodeList了

    	var allTags = document.getElementsByTagName("*");
    	alert(allTags.item(1).tagName);//访问了第二个元素
    	alert(allTags[0]);//在JavaScript可以这样访问第一个元素,但这只能是JavaScript里正常运行

    getElementsByTagName与getElementsByName都返回NodeList,可以使用item(index)方法访问其中的内容,在JavaScript中还可使用数组形式的下标访问!

    创建和操纵节点

    迄今为止,已经学过了如何访问文档中的不同节点,不过这仅仅是使用DOM所能实现的功能中的很小一部分。还能添加、删除、替换(或者其他操作)DOM文档中的节点。正是这些功能使得DOM具有真正意义上的动态性。

    创建新节点

    DOM Document(文档)中有一些方法用于创建不同类型的节点,即便在所有的浏览器中的浏览器document对象并不需要全部支持所有的方法。下面的表格列出了包含在DOM Level 1中的方法,并列出不同的浏览器是否支持项。

    方 法 描 述 IE MOZ OP SAF
    createAttribute (name) 用给定名称name创建特性节点 × × ×
    createCDATASection (text) 用包含文本text的文本子节点创建一个CDATA Section ×
    createComment(text) 创建包含文本text的注释节点 × × × ×
    createDocumentFragment() 创建文档碎片节点 × × × ×
    createElement (tagname) 创建标签名为tagname的元素 × × × ×
    createEntity Reference(name) 创建给定名称的实体引用节点 ×
    createProcessing Instruction(target, data) 创建包含给定targetdata的PI节点 ×
    createTextNode(text) 创建包含文本text的文本节点 × × × ×

    注:IE = Windows的IE 6;MOZ = 任意平台的Mozilla 1.5;OP=任意平台的Opera 7.5;SAF=MacOS的Safari 1.2

    最常用到的几个方法是:createDocumentFragment()、createElement()和createText- Node();其他的一些方法要么就是没什么用(createComment()),要么就是浏览器的支持不够,目前还不太能用。

    动态创建一个段落示例

    	var p = document.createElement("p");//创建一个元素节点,传入标签名
    	var txt = document.createTextNode("创建文本节点,传参数即是文本内容");
    	p.appendChild(txt);//将txt所引用的文本节点插入p到p的最后面(在这里p是空的)
    	//直到现在,页面不会出现任何内容,必须将创建的节点插入到文档中
    	document.body.appendChild(p);//p将出现在最后
    	

    移动,删除节点方法及注意事项——appendChild,removeChild,replaceChild,insertBefore

    	var p1 = document.getElementById("p1");
    	document.body.appendChild(p1);//p1将会被作为body的最后一个子节点,然而页面上仍只有一个p
    	p1.parentNode.removeChild(p1);//removeChild必须是要删除的节点的父节点调用
    	//p1将会从页面上消失,然而它并没有完全消失,我们还可以再将其插入文档
    	document.body.appendChild(p1);//因为变量p1包含了节点的引用
    	var p2 = document.getElementById("p2");
    	p2.parentNode.replaceChild(p1,p2);//p2将会被替换成p1,p2将消失
    	//而p1将从原来的位置移到p2的位置

    克隆节点——cloneNode

    基于上面的原因,DOM为我们提供了一个克隆节点的方法用于生成一个节点的副本

    	var p1 = document.getElementById("p1");
    	var p2 = p1.cloneNode();
    	document.body.appendChild(p2);//页面上将会多出一个段落,不过段落中什么都没有
    	p2 = p1.cloneNode(true);//使用参数true表示克隆节点时包含子节点
    	document.body.appendChild(p2);
    展开全文
  • 节点的介绍及使用方法

    千次阅读 2019-01-09 22:59:48
    * 节点: 页面上所有的内容(标签, 属性, 文本(文字, 换行, 空格)) node * 根元素: html标签 * * 节点的属性 * .nodeType : 节点的类型 : 1–标签 2-属性 3-文本 * .nodeName: 节点的名字: 大写的标签名字–&gt;...
    • 顶级对象 : 文档的对象 document
      * 元素: 页面上所有的标签 element
      * 节点: 页面上所有的内容(标签, 属性, 文本(文字, 换行, 空格)) node
      * 根元素: html标签
      *
      * 节点的属性
      * .nodeType : 节点的类型 : 1–标签 2-属性 3-文本
      * .nodeName: 节点的名字: 大写的标签名字–>标签节点 小写的属性名字—>属性的节点
      * #text—> 文本的节点
      * .nodeValue: 节点的值 : null—>标签节点 属性的值—>属性节点 文本的内容–>文本节点

    //第一个子节点
    console.log(u.firstChild); // 在ie8中 显示的是第一个子元素
    //第一个子元素
    console.log(u.firstElementChild); // 在ie8中 不支持
    //最后一个子节点
    console.log(u.lastChild);// 在ie8中 显示的是最后一个子元素
    //最后一个子元素
    console.log(u.lastElementChild);// 在ie8中 不支持

    console.log("================================================")
    
    //获取前一个兄弟节点
    console.log(u.previousSibling) ; //  在ie8中 显示的是前一个兄弟元素
    //获取前一个兄弟元素
    console.log(u.previousElementSibling);  //  在ie8中 不支持
    //获取后一个兄弟节点
    console.log(u.nextSibling);  //  在ie8中 显示的是后一个兄弟元素
    //获取后一个兄弟元素
    console.log(u.nextElementSibling); //  在ie8中 不支持
    
    /*
    * 总结:  凡是获取元素和节点, 在谷歌和火狐 都支持
    *        从子节点和兄弟节点开始, 获取节点的代码 在ie8中 得到的元素
    *        获取元素的代码, 得到的是undfined
    

    小案例
    在这里插入图片描述

    展开全文
  • 【数据结构】节点和结点,到底怎么区分?

    万次阅读 多人点赞 2018-11-06 17:10:39
    说实话,在写这篇博客之前,我一直以为链表中的结点叫“节点”,,所以不管是给代码写注释,还是理解方面,我都觉得是“节点”,今天就来说一下节点和结点到底有什么不同? 节点呢,被认为是一个实体,有处理能力,...

    你们有没有纠结过这样一个问题,就是数据结构链表中结点的“结”到底是哪个字?

    说实话,在写这篇博客之前,我一直以为链表中的结点叫“节点”,,所以不管是给代码写注释,还是理解方面,我都觉得是“节点”,今天就来说一下节点和结点到底有什么不同?

    节点呢,被认为是一个实体,有处理能力,比如,网络上的一台计算机;而结点则只是一个交叉点,像“结绳记事”,打个结,做个标记,仅此而已,还有就是,要记住:一般算法中点的都是点。

    我们在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称它为数据结点,简称结
    点。在链表数据结构中,链表中每一个元素称为“结点”,每个结点都应包括两个部分:一个是需要用的实际数据data;另一个就是存储下一个结点地址的指针,即数据域和指针域。数据结构中的每一个数据结点对应于一个存储单元,这种储存单元称为储存结点,也可简称结点。

    说到这里,我再补充一个关于链表的知识(不知道有没有哪位童鞋和我一样,在初学时不理解(捂脸))

    链表中前驱和后继是啥?

    举例来说明哈:
    (1)对于线性存储结构:

    1, 2, 3, ......, n, n+1, .......

    结点n+1的直接前驱结点为n结点


    (2)而对于链表存储结构

    // 结点的定义
    struct node
    {
    int data; // 数据域
    struct node* next; // 指针域 
    };

    在上面数据结构中,struct node* head表示链表的头结点,head->next表示为头结点head的后继结点;而head则为head->next的前驱节点。

     

    展开全文
  • 结点和节点的区别

    万次阅读 多人点赞 2018-06-02 12:07:27
    结,连结,终结节,关节可以这样做简单的区分节点被认为是一个实体,有处理能力,比如说网络上的一台计算机;结点则只是一个交叉点,像“结绳记事”,打个结,做个标记,仅此而已。一般算法中点都是结点。那么复杂...

    结,连结,终结
    节,关节
    可以这样做简单的区分


    节点被认为是一个实体,有处理能力,比如说网络上的一台计算机;

    结点则只是一个交叉点,像“结绳记事”,打个结,做个标记,仅此而已。一般算法

    中点都是结点。

    那么复杂网络理论中所谈到的点应该是“节点”了。


    展开全文
  • JS获取子节点、父节点和兄弟节点的若干种方式

    万次阅读 多人点赞 2017-08-17 11:13:37
    一、js获取子节点的方式1.通过获取dom方式直接获取子节点其中test的父标签id的值,div为标签的名字。getElementsByTagName是一个方法。返回的是一个数组。在访问的时候要按数组的形式访问。var a = document....
  • 二叉树的后继节点

    千次阅读 2018-07-16 08:19:19
    二 例子对于下面的二叉树,8的后继节点为9(题目说的中序遍历),6的后继节点为7,5的后继节点为6三 思路思路很简单,①如果节点有右子树,则该节点的后继节点就是往右子树出发,然后转到右子树的左子树,一直到左子树...
  • P2P网络及节点发现机制

    千次阅读 2018-07-17 15:57:10
    1.2 Kad网络节点距离 1.3 K桶 1.4 Kad通信协议 2 邻居节点 2.1 NodeTable类主要成员 2.2 邻居节点发现方法 2.3 邻居节点网络拓扑及刷新机制。   1 分布式网络介绍 以太坊底层分布式网络即P2P网络,使用了...
  • 后继节点和前驱节点

    千次阅读 2019-03-23 12:43:16
    如果没有右子树,则找当前节点的父节点,并且当前节点是父节点的左子树的节点。 红圈代表的是当前节点,箭头代表的后继节点,也就是中序遍历中相对当前节点的下一个。 public static class Node{ public int ...
  • 二叉树两个节点的最近公共祖先

    千次阅读 2018-09-04 11:02:47
    转自... Lowest Common Ancestor in a Binary Tree Given a binary tree (not a binary search tree) and two values say n1 and n2, write a...
  • Js节点

    千次阅读 2018-12-03 15:36:24
    获取指定节点 代码 用法 firstChild 获取当前元素节点的第一个子节点 firstElementChild 获取当前元素节点的第一个元素节点 lastChild 获取当前元素节点的最后一个子节点 lastElementChild 获取当前...
  • 节点父、子和同胞 节点树中的节点彼此拥有层级关系。 ...父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。...在节点树中,顶端节点被称为根(root)每个节点都有父节点、除
  • 所谓的树形结构就是各个元素之间具有分层关系的数据结构,常用一棵倒置的树来表示逻辑关系。...所谓的根节点就是树的最顶端的节点, 继续往下分为子节点, 当不断细分直到不再有子节点时为叶子节点。...
  • 最近有些同学过来问我如何判断zookeeper的节点是持久节点还是临时节点?其实很简单,接下来我们就来看看判断方法。 zookeeper 持久节点:该数据节点被创建后,就会一直存在于zookeeper服务器上,直到有删除操作来...
  • DOM节点信息包括节点类型(nodeType)、节点名称(nodeName)和节点值(nodeValue)。 节点类型 DOM节点中,每个节点都拥有不同的类型。 W3C规范中常用的 DOM节点类型有以下几种: 节点类型 说明...
  • 首先这篇博客花了一点时间才总结出来,肯定还有错误,希望各位读者能够小心翼翼的看。尽量理解吧,因为我自己...树的节点要么是红色的,要么就是黑色的(这是废话,不然怎么叫红黑树) 树的根节点一定是黑色的 ...
  • 对红黑树的认识总结

    万次阅读 2020-05-27 15:16:40
    备注:后续逐步增加
  • ZooKeeper 节点类型

    万次阅读 2014-08-21 23:31:49
    在 ZooKeeper 中,节点类型可以分为持久节点(PERSISTENT )、临时节点(EPHEMERAL),以及时序节点(SEQUENTIAL ),具体在节点创建过程中,一般是组合使用,可以生成以下 4 种节点类型。 持久节点...
  • //得到s的全部子节点 var par=s.parentNode; //得到s的父节点 var ns=s.nextSbiling; //获得s的下一个兄弟节点 var ps=s.previousSbiling; //得到s的上一个兄弟节点 var fc=s.firstChild; //获得s的第一...
  • xpath 获取当前节点的父节点,兄弟节点的方法

    万次阅读 多人点赞 2017-05-16 10:44:33
    xpath_input_exp_mark = '//label[contains(text(), "文本内容")]/../following-sibling::div[1]//input'browser.find_element_by_... 表示当前节点的父节点following-sibling::div[1] 表示当前节点的兄弟节点中的 第 1
  • JS如何删除节点和所有子节点

    万次阅读 2018-07-16 09:53:21
    1. 删除Id为demo节点var element=document.getElementById("demo"); element.parentNode.removeNode(element);2. 删除class类名为demo的所有节点var elements = document.getElementsByClassName('demo');...
1 2 3 4 5 ... 20
收藏数 2,377,721
精华内容 951,088
关键字:

节点