日期:2014-05-16  浏览次数:20409 次

js加强(二)

一、元素节点

//测试元素节点,输出节点名称,节点的类型,节点的值
  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);
  }


 

二、属性节点

//测试属性节点,输出属性节点名称,节点的类型,节点的值
  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"));
  }


 

三、文本节点

 //测试元素节点,输出节点名称,节点的类型,节点的值
  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()方法将先创建它再为其赋ࠆ