在javascript中关于节点内容加强


Posted in Javascript onApril 11, 2013

一、元素节点

//测试元素节点,输出节点名称,节点的类型,节点的值
  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>"; 
Javascript 相关文章推荐
js tab 选项卡
Apr 26 Javascript
jquery ajax jsonp跨域调用实例代码
Dec 11 Javascript
鼠标经过tr时,改变tr当前背景颜色
Jan 13 Javascript
JavaScript中跨域调用Flash的方法
Aug 11 Javascript
JS实现点击按钮获取页面高度的方法
Nov 02 Javascript
jQuery 移动端artEditor富文本编辑器
Jan 11 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
May 18 Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
Jan 07 Javascript
Vue3新特性之在Composition API中使用CSS Modules
Jul 13 Javascript
JavaScript编码小技巧分享
Sep 17 Javascript
vue router 动态路由清除方式
May 25 Vue.js
onkeydown事件解决按回车键直接提交数据的需求
Apr 11 #Javascript
jQuery实用基础超详细介绍
Apr 11 #Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
Apr 11 #Javascript
jQuery实现 注册时选择阅读条款 左右移动
Apr 11 #Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
Apr 11 #Javascript
基于jquery实现点击左右按钮图片横向滚动
Apr 11 #Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
Apr 11 #Javascript
You might like
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
Javascript中Eval函数的使用
2010/03/23 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
微信小程序之多文件下载的简单封装示例
2018/01/29 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
Python requests模块session代码实例
2020/04/14 Python
Gap工厂店:Gap Factory
2017/11/02 全球购物
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
开业庆典策划方案
2014/02/18 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
如何写求职信
2014/05/24 职场文书
师德师风培训感言
2015/08/03 职场文书
施工安全责任协议书
2016/03/23 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python
对讲机的最大通讯距离是多少
2022/02/18 无线电
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS