在javascript中关于节点内容加强

  一、元素节点

  

复制代码 代码如下:

  //测试元素节点,输出节点名称,节点的类型,节点的值

  var liElements=document.getElementsByTagName("li");

  for(var i=0;i<liElements.length;i++){

  alert(liElements[i].nodeName);

  alert(liElements[i].nodeType);

  alert(liElements[i].nodeValue);

  }

  二、属性节点

  

复制代码 代码如下:

  [/c//测试属性节点,输出属性节点名称,节点的类型,节点的值

  var liElements=document.getElementsByTagName("li");

  for(var i=0;i<liElements.length;i++){

  var attrElement=liElements[i].getAttributeNode("value")

  alert("attrElement.nodeName "+attrElement.nodeName);

  alert("attrElement.nodeType "+attrElement.nodeType);

  alert("attrElement.nodeValue "+liElements[i].getAttribute("value"));

  }ode]

  三、文本节点

  [code]

  //测试元素节点,输出节点名称,节点的类型,节点的值

  var liElements=document.getElementsByTagName("li");

  for(var i=0;i<liElements.length;i++){

  alert(liElements[i].childNodes[0].nodeName);

  alert(liElements[i].childNodes[0].nodeType);

  alert(liElements[i].childNodes[0].nodeValue);

  liElements[i].childNodes[0].nodeValue="南京";

  alert(liElements[i].childNodes[0].nodeValue);

  //另一种读取方法

  alert(liElements[i].firstChild.nodeName);

  alert(liElements[i].firstChild.nodeType);

  alert(liElements[i].firstChild.nodeValue);

  }

  四、替换节点

  replaceChild()

  把一个给定父元素里的一个子节点替换为另外一个子节点

  var reference = element.replaceChild(newChild,oldChild);

  返回值是一个指向已被替换的那个子节点的引用指针。

  如果被插入的子节点还有子节点,则那些子节点也被插入到目标节点中

  

复制代码 代码如下:

  //方法一

  //  var cityElement=document.getElementById("city");

  //  var loveElement=document.getElementById("love");

  //  var cityChildElement=document.getElementById("beijing");

  //  var loveChildElement=document.getElementById("fankong");

  //  var oldElement=cityElement.replaceChild(loveChildElement,cityChildElement);

  //  loveElement.appendChild(oldElement);

  //  alert(oldElement.getAttribute("id"));

  var cityElement=document.getElementById("city");

  cityElement.onclick=function(){

  var cityChildElement=document.getElementById("beijing");

  var loveChildElement=document.getElementById("fankong");

  var oldElement=cityElement.replaceChild(loveChildElement,cityChildElement);

  loveElement.appendChild(oldElement);

  alert(oldElement.getAttribute("id"));

  }

  五、查找属性节点

  getAttribute()

  返回一个给定元素的一个给定属性节点的值

  var attributeValue = element.getAttribute(attributeName);

  给定属性的名字必须以字符串的形式传递给该方法。

  给定属性的值将以字符串的形式返回,如果给定属性不存在,getAttribute() 将返回一个空字符串.

  通过属性获取属性节点

  getAttributeNode(属性的名称)--Node

  <li name="beijing" id="bj">北京</li>

  //通过属性名获取属性的值

  var  bjElement=document.getElementById("bj");

  var attributeValue=eduElement.getAttribute("name");

  alert("attributeValue    "+attributeValue);

  //通过属性名获取属性的节点

  var  bjNode=eduElement.getAttributeNode("name");

  alert(eduNode.nodeValue);

  alert(eduNode.nodeType);

  alert(eduNode.nodeName);

  六、设置属性节点

  setAttribute()

  将给定元素节点添加一个新的属性值或改变它的现有属性的值。

  element.setAttribute(attributeName,attributeValue);

  属性的名字和值必须以字符串的形式传递给此方法

  如果这个属性已经存在,它的值将被刷新;

  如果不存在,setAttribute()方法将先创建它再为其赋值。

  <li  id="bj" >北京</li>

  //获取元素的引用

  var bjElement=document.getElementById("bj");

  //设置属性值

  bjElement.setAttribute("name","beijing");

  //获取设置的属性值

  var nameValue=bjElement.getAttribute("name");

  alert("nameValue "+nameValue);

  七、创建新元素节点

  createElement()

  按照给定的标签名创建一个新的元素节点。方法只有一个参数:将被创建的元素的名字,是一个字符串.

  var reference = document.createElement(element);

  方法的返回值:是一个指向新建节点的引用指针。返回值是一个元素节点,所以它的 nodeType 属性值等于 1。

  新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性,它只是一个存在于 JavaScript 上下文的对象.

  var pElement = document.createElement("p");

  //创建一个新的元素

  var pElement=document.createElement("li");

  //设置属性值

  pElement.setAttribute("id","pid");

  //获取父元素

  var loveElement=document.getElementById("love");

  //在父元素中增加子元素

  loveElement.appendChild(pElement);

  //通过id获取刚创建的元素

  var pidElement=document.getElementById("pid");

  alert(pidElement.getAttribute("id"));

  八、创建新文本节点

  createTextNode()

  创建一个包含着给定文本的新文本节点。这个方法的返回值是一个指向新建文本节点引用指针。

  var textNode = document.createTextNode(text);

  方法只有一个参数:新建文本节点所包含的文本字符串

  方法的返回值:是一个指向新建节点的引用指针。它是一个文本节点,所以它的 nodeType 属性等于 3.

  新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性

  var pElementText=document.createElement("li");

  var textElement=document.createTextNode("南京");

  pElementText.appendChild(textElement);

  九、插入节点(1)

  appendChild()

  为给定元素增加一个子节点:

  var newreference = element.appendChild(newChild).

  给定子节点 newChild 将成为给定元素节点 element 的最后一个子节点。

  方法的返回值是一个指向新增子节点的引用指针。

  该方法通常与 createElement() createTextNode() 配合使用

  新节点可以被追加给文档中的任何一个元素

  

复制代码 代码如下:

  var newliElement=document.createElement("li");

  var textNode=document.createTextNode("北京");

  newliElement.appendChild(textNode);

  document.body.appendChild(newliElement);

  var liElement=document.getElementsByTagName("li");

  var textValue=liElement[0].firstChild.nodeValue;

  alert(textValue);

  十、删除节点

  removeChild()

  从一个给定元素里删除一个子节点

  var reference = element.removeChild(node);

  返回值是一个指向已被删除的子节点的引用指针。

  某个节点被removeChild()方法删除时,这个节点所包含的所有子节点将同时被删除。

  

复制代码 代码如下:

  <ul id="city">  <li value="beijing^" id="beijing">北京</li> </ul>

  var ulElement=document.getElementById("city");

  var liElement=document.getElementById("beijing");

  ulElement.removeChild(liElement);

  如果想删除某个节点,但不知道它的父节点是哪一个,parentNode 属性可以帮忙。

  

复制代码 代码如下:

  <ul id="city">  <li value="beijing^" id="beijing">北京</li> </ul>

  var liElement=document.getElementById("beijing");

  var parentElement=liElement.parentNode;

  parentElement.removeChild(liElement);

  十一、遍历节点树

  ChildNodes:返回一个数组,这个数组由给定元素节点的子节点构成:

  var nodeList = node.childNodes;

  文本节点和属性节点都不可能再包含任何子节点,所以它们的 ChildNodes 属性永远会返回一个空数组。

  如果想知道某个元素有没有子节点,可以用 hasChildNodes 方法。

  如果想知道某个元素有多少个子节点,可以用 childNodes 数组的 length 属性。

  childNodes 属性是一个只读属性。

  十二、获取第一个子节点

  firstChild:该属性返回一个给定元素节点的第一个子节点,返回这个节点对象的指针。

  var reference = node.firstChild;

  文本节点和属性节点都不可能包含任何子节点,所以它们的 firstChild 属性永远会返回 null。

  某个元素的 firstChild 属性等价于这个元素的 childNodes 节点集合中的第一个节点,即:

  var reference = node.ChildNodes[0];

  firstChild 属性是一个只读属性。

  十三、获取最后一个子节点

  lastChild:对应 firstChild 的一个属性。

  nextSibling: 返回一个给定节点的下一个兄弟节点。

  parentNode:返回一个给定节点的父节点。

  parentNode 属性返回的节点永远是一个元素节点,因为只有元素节点才有可能包含子节点。

  document 节点的没有父节点。

  previousSibling:返回一个给定节点的上一个兄弟节点

  十四、innerHTML属性

  浏览器几乎都支持该属性,但不是 DOM 标准的组成部分。

  innerHTML 属性可以用来读,写某给定元素里的 HTML 内容。

  

复制代码 代码如下:

  <div id="city"></div>

  var divElement=document.getElementById("city");

  divElement.innerHTML="<li value='beijing^'' id='beijing'>北京</li>";