天天看点

js 访问,插入,替换,创建,删除节点介绍

访问选定元素节点下的所有子节点的列表,返回的值可以看作是一个数组,他具有length属性。

语法:

elementNode.childNodes

注意:

如果选定的节点没有子节点,则该属性返回不包含节点的 NodeList。

注意:

1. IE全系列、firefox、chrome、opera、safari兼容问题

2. 节点之间的空白符,在firefox、chrome、opera、safari浏览器是文本节点,所以IE是3,其它浏览器是7,

访问子节点的第一和最后项

一、firstChild 属性返回‘childNodes’数组的第一个子节点。如果选定的节点没有子节点,则该属性返回 NULL。

node.firstChild

说明:与elementNode.childNodes[0]是同样的效果。

二、 lastChild 属性返回‘childNodes’数组的最后一个子节点。如果选定的节点没有子节点,则该属性返回 NULL。

node.lastChild

说明:与elementNode.childNodes[elementNode.childNodes.length-1]是同样的效果。

注意: 我们知道Internet Explorer 会忽略节点之间生成的空白文本节点,而其它浏览器不会。我们可以通过检测节点类型,过滤子节点。

访问父节点parentNode

获取指定节点的父节点

elementNode.parentNode

注意:父节点只能有一个。

访问祖节点:

elementNode.parentNode.parentNode

看看下面的代码:

<div id="text"> 

  <p>

    parentNode     

    <span id="con"> 获取指点节点的父节点</span>

  </p>

</div>

<script type="text/javascript">

  var mynode= document.getElementById("con");

  document.write(mynode.parentNode.parentNode.nodeName);

</script>

运行结果:

parentNode获取指点节点的父节点

DIV

注意: 浏览器兼容问题,chrome、firefox等浏览器标签之间的空白也算是一个文本节点。

访问兄弟节点

1. nextSibling 属性可返回某个节点之后紧跟的节点(处于同一树层级中)。

nodeObject.nextSibling

说明:如果无此节点,则该属性返回 null。

2. previousSibling 属性可返回某个节点之前紧跟的节点(处于同一树层级中)。

nodeObject.previousSibling 

注意: 两个属性获取的是节点。Internet Explorer 会忽略节点间生成的空白文本节点(例如,换行符号),而其它浏览器不会忽略。

插入节点appendChild()

在指定节点的最后一个子节点列表之后添加一个新的子节点。

语法:

appendChild(newnode)

参数:

newnode:指定追加的节点。

插入节点insertBefore()

insertBefore() 方法可在已有的子节点前插入一个新的子节点。

insertBefore(newnode,node);

newnode: 要插入的新节点。

node: 指定此节点前插入节点。

删除节点removeChild()

removeChild() 方法从子节点列表中删除某个节点。如删除成功,此方法可返回被删除的节点,如失败,则返回 NULL。

nodeObject.removeChild(node)

node :必需,指定需要删除的节点。

替换元素节点replaceChild()

replaceChild 实现子节点(对象)的替换。返回被替换对象的引用。

node.replaceChild (newnode,oldnew )

参数:

newnode : 必需,用于替换 oldnew 的对象。

oldnew : 必需,被 newnode 替换的对象。

创建元素节点createElement

createElement()方法可创建元素节点。此方法可返回一个 Element 对象。

document.createElement(tagName)

tagName:字符串值,这个字符串用来指明创建元素的类型。

注意:要与appendChild() 或 insertBefore()方法联合使用,将元素显示在页面中。

我们来创建一个按钮,代码如下:

   var body = document.body;

   var input = document.createElement("input"); 

   input.type = "button"; 

   input.value = "创建一个按钮"; 

   body.appendChild(input); 

 </script> 

效果:在HTML文档中,创建一个按钮。

我们也可以使用setAttribute来设置属性,代码如下:

<script type="text/javascript"> 

   var body= document.body;            

   var btn = document.createElement("input"); 

   btn.setAttribute("type", "text"); 

   btn.setAttribute("name", "q"); 

   btn.setAttribute("value", "使用setAttribute"); 

   btn.setAttribute(" "javascript:alert('This is a text!');");      

   body.appendChild(btn); 

</script> 

效果:在HTML文档中,创建一个文本框,使用setAttribute设置属性值。 当点击这个文本框时,会弹出对话框“This is a text!”。

创建文本节点createTextNode

createTextNode() 方法创建新的文本节点,返回新创建的 Text 节点。

document.createTextNode(data)

data : 字符串值,可规定此节点的文本。