javascript读取xml实现javascript分页


Posted in Javascript onDecember 13, 2013
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>读取Xml并分页</title>
</head>
<body >
   <div id="gao">
   </div>
    <div>
       <table align="center">
          <tr>
             <td><input type="button" name="prev" id="prev" value="上一页"  onclick="showPage('false')"><input type="button" id="next" name="next" value="下一页" onclick="showPage('true')"> </td>
          </tr>
       </table>
    </div>
<script type="text/javascript">
     function LoadXML(url)
  {
  var xmlDoc;
  if(window.ActiveXObject)
  { 
     xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
     xmlDoc.async="false";
     xmlDoc.load(url);      
  }else if(document.implementation&&document.implementation.createDocument)
  {
              xmlDoc=document.implementation.createDocument("","",null);
     xmlDoc.async=false;
     xmlDoc.load(url);
  }else
  {
     alert("You browser cannot handle this script!");
  }
  return xmlDoc;
  }

  var xmlDoc=LoadXML("student.xml");
  var students=xmlDoc.getElementsByTagName("student");
  var stuLength=students.length;
  var currentPage=0;
  var pageSize=2;
  var maxPage=Math.ceil(stuLength/pageSize);
  function showPage(page)
  {
  var mytable=document.getElementsByTagName("table")[1];
  if(mytable) document.body.removeChild(mytable); 
  var table=document.createElement("table");
  table.setAttribute("id","mytable");
  table.setAttribute("width","600");
  table.setAttribute("border","1");
     document.body.appendChild(table);
  var header=table.createTHead();
  var headerrow=header.insertRow(0);
     headerrow.insertCell(0).appendChild(document.createTextNode("姓名"));
  headerrow.insertCell(1).appendChild(document.createTextNode("学校"));
  headerrow.insertCell(2).appendChild(document.createTextNode("成绩"))
       if(page=="true")
    currentPage++;
    else
      currentPage--;
    if(currentPage>=maxPage) currentPage=maxPage;
    else if(currentPage<=0) currentPage=1;
    var start=(currentPage-1)*pageSize;
    var end=currentPage*pageSize-1;
    for(var i=start;i<=end;i++)
    {
             var e=students[i];
    var name=e.getAttribute("name");
    var school=e.getElementsByTagName("school")[0].firstChild.data;
    var grade=e.getElementsByTagName("grade")[0].firstChild.data;
    var row=table.insertRow(i%pageSize+1);
    row.insertCell(0).appendChild(document.createTextNode(name));
    row.insertCell(1).appendChild(document.createTextNode(school));
    row.insertCell(2).appendChild(document.createTextNode(school));
    }
    
  }
  showPage("true");
</script>
</body>
</html>

在编写过程过,涉及到代码的处理上,由于我最初,将javascript代码放在了head标签里面,结果导致document.body对象为空!
我们都知道,javascript在执行的时候,页面会暂定加载而去执行html代码,所以当js代码放在head标签中的时候,html页面还没有执行到body,故而产生了错误!
后来将js代码,放在了body的尾部,这样,就能够正确引用到body对象了!
同时,在大型网站架构中,也是提高页面加载速度的一种方式!页面首页加载html标签内容,到页面最后,在执行js代码,能在很大程度上提升网页打开速度,提升用户体验!
另外的student.xml内容是
<?xml version="1.0" encoding="utf-8"?>
<students>
   <student name="gaoxing">
       <school>西北大学1</school>
    <grade>76</grade>
   </student>
   <student name="gaoxing">
       <school>西北大学2</school>
    <grade>76</grade>
   </student>
   <student name="gaoxing">
       <school>西北大3学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学4</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大5学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大6学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大7学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北8大学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北9大学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北10大学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学</school>
    <grade>76</grade>
   </student>
      <student name="gaoxing">
       <school>西北大学</school>
    <grade>76</grade>
   </student>
</students>
Javascript 相关文章推荐
js文件中调用js的实现方法小结
Oct 23 Javascript
模仿百度三维地图的js数据分享
May 12 Javascript
javascript 45种缓动效果 非常酷
Jun 28 Javascript
中文输入法不触发onkeyup事件的解决办法
Jul 09 Javascript
一个JavaScript递归实现反转数组字符串的实例
Oct 14 Javascript
JS实现六位字符密码输入器功能
Aug 19 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
Apr 14 Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 Javascript
vue中axios的封装问题(简易版拦截,get,post)
Jun 15 Javascript
vue webpack重写cookie路径的方法
Jul 10 Javascript
uni-app从安装到卸载的入门教程
May 15 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 #Javascript
javascript分页代码实例分享(js分页)
Dec 13 #Javascript
jquery 操作iframe的几种方法总结
Dec 13 #Javascript
异步动态加载JS并运行(示例代码)
Dec 13 #Javascript
JQuery中$.ajax()方法参数详解及应用
Dec 12 #Javascript
js setTimeout()函数介绍及应用以倒计时为例
Dec 12 #Javascript
jquery如何获取复选框的值
Dec 12 #Javascript
You might like
PHP初学者头疼问题总结
2006/07/08 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
python实现126邮箱发送邮件
2020/05/20 Python
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
Java基础面试题
2012/11/02 面试题
养殖行业的创业计划书
2014/01/05 职场文书
求职面试个人自我评价
2014/02/28 职场文书
交通安全责任书范本
2014/07/24 职场文书
火锅店的活动方案
2014/08/15 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
导游欢迎词范文
2015/01/23 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
清明节随笔
2015/08/15 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
在 SQL 语句中处理 NULL 值的方法
2021/06/07 SQL Server
PHP正则表达式之RCEService回溯
2022/04/11 PHP
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL