<!DOCTYPE html>
<html>
<head>
<title>users.html</title>

<meta name="keywords" content="keyword1,keyword2,keyword3">
<meta name="description" content="this is my page">
<meta name="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
    //全局变量
    var pages = 0;//总页数
    var pagesize = 3;//每页显示数量
    var startsize = 0;//每页开始显示的位置
    var endsize = 0;//每页结束显示的位置
    var nowpage = 1;//当前页
    var countsize = 0;//总记录数

//保存添加的数据的数组
    var users = new Array();

function addUser() {
        //获取dom对象
        var nameDom = getById("name");
        var ageDom = getById("age");
        //根据dom的属性获取value值
        var nameValue = nameDom.value;
        var ageValue = ageDom.value;
        //根据name="sex" name属性的值获取节点对象
        var sexsDom = document.getElementsByName("sex");
        var sexValue = "";
        //遍历
        for (var i = 0; i < sexsDom.length; i++) {
            var sexDom = sexsDom[i];//获取dom对象<input type="radio" value="男" name="sex"/>男
            if (sexDom.checked) {
                sexValue = sexDom.value;
            }
        }

//保存到数组中
        users.push(new User(nameValue, ageValue, sexValue));

//数组发生变化  就应该重新计算
        pagination();

};

//重新计算分页的数据
    function pagination() {
        //总记录数
        countsize = users.length;
        //总页数
       pages=countsize%pagesize==0?countsize/pagesize:(countsize-countsize%pagesize)/pagesize+1;
        if (nowpage <= 0) {
            nowpage = 1; // 第一页
        } else if (nowpage >pages) { // 如果当前页大于总页数 ,那么当前页应该等于总页数
            nowpage = pages;
        }

   //每页开始的记录数
        startsize=(nowpage-1)*pagesize;
        //每页结束的记录数
        endsize = (nowpage - 1) * pagesize + pagesize;

//显示分页相关的数据
        getById("pageinfo").innerHTML = "总记录数是:" + countsize + ",总页数是:" + pages
                + ",当前页是:" + nowpage + ",开始的记录数是:" + startsize + ",结束的记录数是:"
                + endsize;

//重新显示数据
        showUsers();
    }

function showUsers() {
        //获取要添加的位置 的dom节点对象
        var showUsersDom = getById("showUsers");
        //思考 非常简单     showUsersDom清空
        for(var i=0;i<showUsersDom.childNodes.length;){
            showUsersDom.removeChild(showUsersDom.childNodes[i]); //3 0  2 0 1 0 0
        }
        
        
        for (var i = startsize; i < endsize; i++) {
            var user = users[i];
            //创建行
            var trDom = document.createElement("tr");
            //创建列
            var td1Dom = document.createElement("td");
            var td2Dom = document.createElement("td");
            var td3Dom = document.createElement("td");
            var td4Dom = document.createElement("td");
            //创建列的文本节点
            var text1Dom = document.createTextNode(user.nameValue);
            var text2Dom = document.createTextNode(user.ageValue);
            var text3Dom = document.createTextNode(user.sexValue);

var deleteInputDom = document.createElement("input");
            deleteInputDom.setAttribute("type", "button");
            deleteInputDom.setAttribute("value", "删除");
            deleteInputDom.setAttribute("id",i);
            deleteInputDom.onclick=deleteUser;
            var updateInputDom = document.createElement("input");
            updateInputDom.setAttribute("type", "button");
            updateInputDom.setAttribute("value", "更新");

//列中添加文本
            td1Dom.appendChild(text1Dom);
            td2Dom.appendChild(text2Dom);
            td3Dom.appendChild(text3Dom);

td4Dom.appendChild(deleteInputDom);
            td4Dom.appendChild(updateInputDom);
            //行中添加列
            trDom.appendChild(td1Dom);
            trDom.appendChild(td2Dom);
            trDom.appendChild(td3Dom);
            trDom.appendChild(td4Dom);

showUsersDom.appendChild(trDom);

}
    }
    
    var deleteUser=function(){
        //数组怎么删除尼
        users.splice(this.id, 1);//删除数据
        pagination();
    };
    //创建User对象的构造函数
    function User(nameValue, ageValue, sexValue) {
        this.nameValue = nameValue;
        this.ageValue = ageValue;
        this.sexValue = sexValue;
    }

//简化名称
    function getById(id) {
        return document.getElementById(id);
    };

//当窗体加载完毕触发的函数
    window.onload = function() {
        //获取按钮对象 注册点击事件
        getById("firstPageBtn").onclick = firstPage;
        getById("prePageBtn").onclick = prePage;
        getById("nextPageBtn").onclick = nextPage;
        getById("lastPageBtn").onclick = lastPage;
    };

//首页处理
    var firstPage = function() {
        nowpage = 1;
        pagination();//重新计算
    };

//上一页的处理
    var prePage = function() {
        nowpage = nowpage - 1;
        if (nowpage <= 1) {
            nowpage = 1;
        }
        pagination();//重新计算
    };
    //下一页的处理
    var nextPage = function() {
        nowpage = nowpage + 1;
        if (nowpage >= pages) {
            nowpage = pages;
        }
        pagination();
    };
    //末页的处理
    var lastPage = function() {
        nowpage = pages;
        pagination();
    };
</script>
</head>

<body>
    <div style="text-align: center">
        <table border="1" align="center">
            <tr>
                <td>用户名:</td>
                <td><input type="text" id="name" /></td>
            </tr>
            <tr>
                <td>年龄</td>
                <td><input type="text" id="age" /></td>
            </tr>
            <tr>
                <td>性别</td>
                <td><input type="radio" value="男" name="sex" />男 <input
                    type="radio" value="女" name="sex" checked="checked" />女</td>
            </tr>
            <tr>
                <td colspan="2"><input type="button" value="添加"
                    onclick="addUser()" /></td>
            </tr>
        </table>
    </div>

<div>
        <table border="1" align="center">
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>性别</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody id="showUsers"></tbody>
        </table>

<div style="text-align: center">
            <input type="button" id="firstPageBtn" value="首页" /> <input
                type="button" id="prePageBtn" value="上一页" /> <input type="button"
                id="nextPageBtn" value="下一页" /> <input type="button"
                id="lastPageBtn" value="末页" /> <span id="pageinfo"></span>
        </div>
    </div>
</body>
</html>

效果:

JavaScript学习记录总结(七)——dom对象应用之用户简单管理的更多相关文章

  1. JavaScript学习记录一

    title: JavaScript学习记录一 toc: true date: 2018-09-11 18:26:52 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  2. JavaScript学习记录四

    title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  3. JavaScript学习记录三

    title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  4. JavaScript学习记录二

    title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  5. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  6. Javascript 解析字符串生成 XML DOM 对象。

    Javascript 接收字符串生成 XML DOM 对象.实测对 Firefox .IE6 有效.可用于解析 ajax 的服务器响应结果,也可用于解析自定义字符串.​1. [代码]函数   ppt模 ...

  7. JavaScript学习笔记系列2:Dom操作(一)

    一.什么是Dom? DOM------>Document Object Model 直接翻译就是文档对象模型. DOM------>定义了表示和修改文档所需的对象.这些对象的行为和属性以及 ...

  8. JavaScript学习(5)-Image对象和动态HTML

    JavaScript学习5 1.image 对象 对象引用 document.images[n] document.images["imageName"] document.ima ...

  9. JavaScript学习(2):对象、集合以及错误处理

    在这篇文章里,我们讨论一下JavaScript中的对象.数组以及错误处理. 1. 对象 对象是JavaScript中的一种基本类型,它内部包含一些属性,我们可以对这些属性进行增删操作. 1.1 属性 ...

随机推荐

  1. Struts2 的验证

    概述 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 –基于 XWork Validation Framework 的声明式验证:Struts2 提供了一些基 ...

  2. IT公司100题-15-求二元查找树的镜像

    问题描述: 输入一颗二元查找树,将该树转换为它的镜像树,即对每一个节点,互换左右子树.   例如输入:   6/    \4     12/ \   /   \2  5 8   16 输出:   6/ ...

  3. K2 BPM医疗行业EMS解决方案

    EMS,即Event Management System,K2医疗行业EMS解决方案包括四方面的内容. 详情链接:http://www.k2software.cn/zh-hans/ems-soluti ...

  4. Controller方法的返回值

    方法的返回值1.ModelAndView这个就不多说,这是最基础的,前面定义一个ModelAndView,中途使用addObject方法添加属性,再返回.视图解析器会自动扫描到的.2.String这个 ...

  5. 千寻浏览器 1.0 Beta 1(524)(2014年5月27日)

    千寻浏览器--又一款新生浏览器今天进入各位浏览迷的视野.千寻浏览器基于IE内核,据传是由百度浏览器的上海团队操刀,在功能定位上,与目前的QQ浏览器有些相似. 千寻来自官方的解释:寻,追寻,探索,又是古 ...

  6. self进行weak化

    创建block匿名函数之前一般需要对self进行weak化,否则造成循环引用无法释放controller: __weak MyController *weakSelf = self 或者 __weak ...

  7. kali linux karmetasploit配置【续】

    Karmetasploit In Action https://www.offensive-security.com/metasploit-unleashed/karmetasploit-action ...

  8. C++中的数组与指针

    数组与指针看起来很像 int a[] = {1, 2 ,3}; int *p = a; 如此,我们可以p[0], p[1], p[2] 看起来,与直接使用数组名没什么两样,但是看这段代码 sizeof ...

  9. VS2013失去智能提示如何恢复

    一般智能提示包括,输入智能提示,鼠标移到类,方法,接口,变量上面自动提示相关信息,VS2013常常会失去这种提示功能,遇到这种情况可以这样解决: 1.在开发环境中随便打开一个xxx.aspx页面,也就 ...

  10. 爬虫学习----获取cookie

    http://blog.csdn.net/samxx8/article/details/21535901 1.获取cookie import urllib import http.cookiejarc ...