JavaScript节点,JS创建节点

  JavaScript节点,JS创建节点

  本文为大家带来了一些关于javascript的知识,主要介绍了一些关于节点操作的相关问题,包括父节点、子节点、兄弟节点、添加和删除重复节点等。下面就来看看吧,希望对你有帮助。

  【相关推荐:javascript视频教程,web前端】

  在我们的网页中,除了使用DOM提供的方法来获取节点,还可以使用节点的层次关系来获取节点,这是比较简单的。今天来总结一下吧!

  

节点概述

  网页中的一切都是一个节点(标签、属性、文本、评论等。).在DOM中,节点由节点表示。

  HTML DOM树中的所有节点都可以通过JavaScript访问,所有HTML元素(节点)都可以修改、创建或删除。

  一般一个节点至少有三个基本属性:nodeType(节点类型)、nodeName(节点名)和nodeValue(节点值)。

  节点nodeType为1,属性节点nodeType为2,文本节点nodeType为3(文本节点包含单词、空格、换行符等。).在我们的实际开发中,节点操作主要是对元素节点进行操作。

  

节点层级

  使用DOM树,节点可以分为不同的层次关系,常见的是父子兄弟姐妹层次关系。

  

1.父级节点

  节点.父节点

  ParentNode属性可以返回节点的父节点。请注意,它是最近的父节点。如果指定的节点没有父节点,则返回null。p class=parent

  儿子

  /p

  脚本

  var son=document.querySelector(。子’);

  console . log(son . parent node);

  /脚本

  

2.子节点

   node.childNodes返回包含指定节点的子节点集合,这是一个即时更新的集合。

  保险商实验所

  我是李。

  我是李。

  我是李。

  我是李。

  /ul

  脚本

  var ul=document . query selector( ul );

  //childNodes所有子节点,包括元素节点、文本节点等。

  console . log(ul . child nodes);

  /脚本

  为什么这里有五个文本节点?事实上,它们对应于五个换行符。见下图:

  这五个换行符是文本节点,加上四个li元素节点,总共是9个。

  注意:返回值包含所有子节点,包括元素节点、文本节点等。

  如果只想得到里面的元素节点,就需要特殊处理。所以我们一般不提倡使用childNodes。

  var ul=document . query selector( ul );

  for(var I=0;iul.lengthi ){

  if (ul.childNodes[i].nodeType==1){

  console . log(ul . child nodes[I]);

  }

  }node.children是一个只读属性,它返回所有子元素节点。它只返回子元素节点,其余节点不返回(这是我们重点关注的)。

  虽然children是非标准的,但是各种浏览器都支持,所以我们可以放心使用。

  保险商实验所

  我是李。

  我是李。

  我是李。

  我是李。

  /ul

  脚本

  var ul=document . query selector( ul );

  console . log(ul . children);

  /脚本

  

3.第一个子节点和最后一个子节点

  微升

  我是李。

  我是李。

  我是李。

  我是李。

  /ul

  脚本

  var ul=document . query selector( ul );

  //1.无论是文本节点还是元素节点

  console . log(ul . first child);

  console . log(ul . last child);

  //2.返回对应的自元素节点,只有IE9以上才支持。

  console . log(ul . firstelementchild);

  console . log(ul . lastelementchild);

  //3.不存在兼容性问题。

  console . log(ul . children[0]);

  console . log(ul . children[ul . children . length-1]);

  /脚本

  

4.兄弟节点

  那么如何封装一个满足兼容性并能找到其兄弟节点的函数呢?

  函数getNextElementSibling(element){

  var el=元素;

  while(el=el.nextSibling){

  if(el.nodeType==1){

  返回El;

  }

  }

  返回null

  }以上封装的代码可以解决,但是不用想太多,因为ie浏览器即将停止服务,你只要记住节点就行了。nextElementSibling并且不用担心兼容性问题。

  

创建节点

   document . create element()方法创建由tagName指定的 tml元素。因为这些元素一开始是不存在的,是根据我的需求动态生成的,所以我们也称之为动态创建元素节点。

  

添加节点与添加节点

   node.appendChild()方法将一个节点添加到指定父节点的子节点列表的末尾。类似于css中的after伪元素。

  ul/ul

  脚本

  var ul=document . query selector( ul );

  var Li=document . createelement( Li );

  var span=document . createelement( span )

  ul.appendChild(李);

  ul.insertBefore(span,ul . children[0]);

  /脚本

  

删除节点

   node.removeChild(child)方法从DOM中删除子节点并返回删除的节点。

  保险商实验所

  连牛/李

  李/李

  李/李

  /ul

  脚本

  var ul=document . query selector( ul );

  ul . remove child(ul . children[2]);

  /脚本

  

复制节点(克隆节点)

   node.cloneNode()方法返回调用该方法的节点的副本。也称为克隆节点/复制节点

  1.如果括号参数为空或false,则为浅复制,即只能克隆被复制的节点本身,不能删除其中的子节点。

  2.如果括号参数为true,则是深度复制,将复制节点本身及其所有子节点。

  保险商实验所

  连牛/李

  李/李

  李/李

  /ul

  脚本

  var ul=document . query selector( ul );

  var li1=ul.children[0]。clone node();//浅层复制

  var li2=ul.children[0]。cloneNode(真);//深层复制

  ul . appendchild(li1);

  ul . appendchild(li2);

  /脚本

  【相关推荐:javascript视频教程,web前端】以上是一篇关于JavaScript的节点操作的文章的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: