利用原生js做数据管理平台

摘要:数据管理平台在当今社会中运用十分广泛,我们在应用过程中,要对数据进行存储,管理,以及删除查询等操作,而我们在实际设计的时候,大牛们大多用到的是JQuery,而小白对jq理解也较困难,为了让大家回顾一下原生js,也为了让初学者对js熟练掌握,我们利用js进行设计,里面涉及到函数,事件,对象,已经存储,代码如下

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .tr:hover {
                background-color: #ccc;
            }
        </style>

    </head>

    <body>
        别名(key):<input type="" name="" id="name" value="" /><br /> 网站名:
        <input type="" id="Webname" /><br /> 网址:
        <input type="" id="Web" /><br />
        <input type="button" name="" id="" value="点击提交信息" onclick="func1()" />
        <br />
        <h4>网站登录</h4> 网站名:
        <input type="" id="loginName" /><br /> 网址: 网址 <input type="" id="loginPwd" /><br />
        <button onclick="login()">登录</button>

        <h1>已经储存的网站</h1>
        <input type="button" value="删除网站" onclick="delSite()" /><br />

        <input type="text" placeholder="别名" id="search1" />
        <input type="text" placeholder="网站名" id="search2" />
        <input type="text" placeholder="网址" id="search3" />
        <input type="button" name="" id="" value="查询网站" onclick="searchSite()" />

        <table style="width: 500px;border-collapse: collapse;" border="1" id="table">
            <thead>
                <tr>
                    <th>
                        <input type="checkbox" id="checkAll" onclick="checkAll()" />
                    </th>
                    <th>序号</th>
                    <th>别名</th>
                    <th>网站名</th>
                    <th>网站</th>
                </tr>
            </thead>
            <tbody id="tbody"></tbody>
        </table>

        <!--<div style="width: 100vw;height: 100vh;background-color: blue;position: absolute; top: 0px;left: 0px;">
            <div id=""   style="width: 300px;height: 200px;background-color: red;">

            </div>
        </div>
            -->

        别名(key):<input type="" name="" id="name1" value="" /><br /> 网站名:
        <input type="" id="Webname1" /><br /> 网址:
        <input type="" id="Web1" /><br />
        <input type="button" name="" id="" value="修改确定" onclick="dateSites1()" />

        <script type="text/javascript" src="js/菜鸟教程.js">
        </script>

    </body>

</html>
//注册

function func1() {
    var name = document.getElementById("name").value;
    var Webname = document.getElementById("Webname").value;
    var Web = document.getElementById("Web").value;
    var site = {
        name: name,
        Webname: Webname,
        Web: Web
    }
    if(localStorage.sites == undefined) {
        var arr = [];
    } else {
        var str = localStorage.sites;
        var arr = JSON.parse(str);
    }
    for(var i = 0; i < arr.length; i++) {
        if(arr[i].name == name) {
            alert("姓名已经注册");
            return;
        }
    }

    arr.push(site);
    var str = JSON.stringify(arr);
    localStorage.sites = str;
    alert("储存完毕");
    showAllSite();
}

//展示
function showAllSite() {
    if(localStorage.sites == undefined) {
        return;
    }
    var str = localStorage.sites;
    var arr = JSON.parse(str);
    var html = "";
    arr.forEach(function(item, index) {
        html += "<tr class=‘tr‘ onclick=‘chooseInput(" + index + ")‘   ondblclick=‘dateSites(" + index + ")‘><td><input type=‘checkbox‘ value=‘" + index + "‘ class=‘checkbox‘/></td><td>" + (index + 1) + "</td><td>" + item.name + "</td><td>" + item.Webname + "</td><td>" + item.Web + "</td></tr>";
    });
    var tbody = document.getElementById("tbody");
    tbody.innerHTML = html;
}
//进来刷新
window.onload = function() {
    showAllSite();
}
//登录
function login() {
    var loginName = document.getElementById("loginName").value;
    var loginPwd = document.getElementById("loginPwd").value;
    var str = localStorage.sites ? localStorage.sites : "[]";
    var arr = JSON.parse(str);
    for(var i = 0; i < arr.length; i++) {
        if(arr[i].Webname == loginName && arr[i].Web == loginPwd) {
            alert("登录成功!");
            var loginUser = JSON.stringify(arr[i]);
            sessionStorage.loginUser = loginUser;
            location = "跳转.html";
            return;
        }

    }
    alert("登录失败!!!");

}

/*window.onload = function(){
  var div1 = document.getElementById("div11");
  div1.onmousedown = function(ev){
    var oevent = ev || event;

    var distanceX = oevent.clientX - div1.offsetLeft;
    var distanceY = oevent.clientY - div1.offsetTop;

    document.onmousemove = function(ev){
      var oevent = ev || event;
      div1.style.left = oevent.clientX - distanceX + ‘px‘;
      div1.style.top = oevent.clientY - distanceY + ‘px‘;
    };
    document.onmouseup = function(){
      document.onmousemove = null;
      document.onmouseup = null;
    };
    }
};*/

/*单击tr选中tr里面的input*/
function chooseInput(index) {
    var checkboxs = document.getElementsByClassName("checkbox")[index];
    if(checkboxs.checked) {
        checkboxs.checked = false;
    } else {
        checkboxs.checked = true;
    }

}

//点击全选的input

function checkAll() {
    var thisInput = document.getElementById("checkAll");
    var checkboxs = document.getElementsByClassName("checkbox");
    for(var i = 0; i < checkboxs.length; i++) {
        if(thisInput.checked) {
            checkboxs[i].checked = true;
        } else {
            checkboxs[i].checked = false;
        }
    }
}

/*删除*/

function delSite() {
    var checkboxs = document.getElementsByClassName("checkbox");
    var count = 0;
    var str = localStorage.sites;
    var arr = JSON.parse(str);

    for(var i = 0; i < checkboxs.length; i++) {
        if(checkboxs[i].checked) {
            var index = parseInt(checkboxs[i].value) - count;
            arr.splice(index, 1);
            count++;
        }
    }

    localStorage.sites = JSON.stringify(arr);
    if(count == 0) {
        alert("请至少选择一项");
    } else {
        alert("删除成功,删除了" + count + "项");
        showAllSite();
    }

}

/*
 * 查询网站
 */
function searchSite() {
    var name = document.getElementById("search1").value;
    var Webname = document.getElementById("search2").value;
    var Web = document.getElementById("search3").value;
    var str = localStorage.sites;
    var arr = JSON.parse(str);
    var newArr = []; //用于装载,符合条件的数据
    for(var i = 0; i < arr.length; i++) {
        var isWzm = true,
            isBm = true,
            isWz = true;

        if(arr[i].name.indexOf(name) == -1 && name != "") {
            isWzm = false;
        }
        if(arr[i].Webname.indexOf(Webname) == -1 && Webname != "") {
            isBm = false;
        }
        if(arr[i].Web != Web && Web != "") {
            isWz = false;
        }

        if(isWzm && isBm && isWz) {
            arr[i].index = i; // 把查询出的数据,在localStorage里面的下标,暂存到新数组的每个对象的index属性上
            newArr.push(arr[i]);
        }
    }

    var html = "";
    console.log(newArr);
    newArr.forEach(function(item, index) {
        html += "<tr class=‘tr‘ onclick=‘chooseInput(" + index + ")‘><td align=‘center‘><input type=‘checkbox‘ value=‘" + item.index + "‘ class=‘checkbox‘ /></td><td>" + (index + 1) + "</td><td>" + item.name + "</td><td>" + item.Webname + "</td><td>" + item.Web + "</td></tr>";
    });
    var tbody = document.getElementById("tbody");
    tbody.innerHTML = html;

}

//修改网站
var updateIndex = 0;

function dateSites(index) {
    alert(index);
    var str = localStorage.sites;
    var arr = JSON.parse(str);
    document.getElementById("name1").value = arr[index].name;
    document.getElementById("Webname1").value = arr[index].Webname;
    document.getElementById("Web1").value = arr[index].Web;
    updateIndex = index;

}

function dateSites1() {
    var str = localStorage.sites;
    var arr = JSON.parse(str);
    var name = document.getElementById("name1").value;
    var Webname = document.getElementById("Webname1").value;
    var Web = document.getElementById("Web1").value;
    for(var i = 0; i < arr.length; i++) {
        if(arr[i].name == name) {
            alert("网站名已经注册,请更换网站名");
            return;
        }
    }
    var site = {
        name: name,
        Webname: Webname,
        Web: Web,
    };
    arr.splice(updateIndex, 1, site);
    localStorage.sites = JSON.stringify(arr);

    showAllSite();
}

代码较长,对于各部分,已经用注释给分开,而css对于功能影响不大,因此我们没有对css进行设置。弄清楚这段代码,初学者会有很大进步。

时间: 2024-08-28 23:56:03

利用原生js做数据管理平台的相关文章

70.JS---利用原生js做手机端网页自适应解决方案rem布局

利用原生js做手机端网页自适应解决方案rem布局 刚开始我用的是下面这段代码,然后js通过外部链接引入,最后每次用手机刷新网页的时候都会出现缩略图 function getRem(pwidth, prem) { var html = document.getElementsByTagName("html")[0]; var oWidth = document.body.clientWidth || document.documentElement.clientWidth; html.s

&lt;&lt;&lt; 网页中如何利用原生js和jquery储存cookie

javascript当中的cookie机制,使应用达到了真正的全局变量的要求,cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript.可以由JavaScript对其进行控制,而并不是JavaScript本身的性质,由于cookie机制是把信息储存到硬盘,所以他可以用来做全局变量 cookie有关安全性和作用域 1.cookie可能被禁用.当用户非常注重个人隐私保护时,他很可能禁用浏览器的cookie功能:  2.cookie是与浏览器相关的.这

原生js做一个简单的进度条

用原生js做进度条,布局非常简单,一个盒子里放一个span标签,让它的宽度为0,并且转成块元素. 主要用定时器动态增加span的宽度,并且当它的宽度大于父级盒子的宽度的时候停止 效果如下: 一 css如下: *{ margin: 0; padding: 0; } #box{ width: 500px; height: 30px; margin: 50px auto; overflow: hidden; border: 1px solid #CCCCCC; border-radius: 15px;

利用原生JS实现网页1920banner图滚动效果

内容描述:随着PC设备硬件性能的进步和分辨率的不断提高,现在主流网站逐渐开始采用1920banner图,为适应这一趋势,博主设计了1920banner图的滚动效果,代码利用了原生JS实现了1920banner图的切换效果,并针对低分辨率电脑设备进行了适配,实现了JS代码与HTML代码的完全分离,符合w3c的标准使用规范,希望能给各位开发者朋友以帮助和参考.如发现有缺陷和不足,欢迎大家予以指正,如有更好的意见或解决方法,可在评论区交流互动.一下为代码内容: <!DOCTYPE html> <

利用原生JS判断组合键

<script type="text/javascript"> var isAlt = 0; var isEnt = 0; document.onkeydown = function(e){ var evn = e||event; var code = evn.keyCode||evn.which||evn.charCode; if(code==13){ isEnt = 1; } if(code==18){ isAlt = 1; } // 判读Alt+Enter组合键 if

利用原生JS实时监听input框输入值

传送门https://www.cnblogs.com/lantinggumo/p/7636715.html 传送门https://www.cnblogs.com/nailc/p/8572226.html 原文地址:https://www.cnblogs.com/wzh1997/p/11135589.html

利用原生JS实现VUE中的双向绑定

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" id="userName"> <br> <span id="

原生JS例子

利用原生JS做一个班级统计表 实现功能: 1.点击添加建立一行表格 2.点击删除,删除一行表格 3.点击每个单元格可以输入内容,焦点移走的时候保存内容 思路分析: 1.建立简单的HTML的表格 2.通过JS向表格中添加元素 (1):添加tr td button 等元素 (2):添加删除按钮 3.通过DOM操作向表格中添加内容 (1):向每个td中添加点击事件 (2):向每个td中添加标记 (3):寻找标记,并在标记的td中添加 input标签 (4):焦点移除,删除标记,并且重新给每个td加上点

原生js实现数据双向绑定

最近接触了vue,在谈到vue等等的mvvm框架之前,先了解什么是数据双向绑定以及如何利用原生JS实现数据双向绑定 单向数据绑定 指先把模板写好,然后把模板和数据(数据可能来自后台)整合到一起形成HTML代码,然后把这段HTML代码插入到文档流里 缺点:一旦HTML代码生成就没有办法改变,如果有新数据重新传入,就必须重新把模板和数据整合到一起插入到文档流中 数据双向绑定 数据模型和视图之间的双向绑定,用户在视图上的修改会自动同步到数据模型中,同样的,如果数据模型中的值发生变化,也会同步到视图中去