当前位置: 首页 > news >正文

web storage 之留言板

浏览器支持

 IE8+,Firefox 28.0+,chrome 33.0+,Safari 7.0+。

先来了解几个js的问题。

JSON.parse() 和 JSON.stringify()

parse用于从一个字符串中解析出json对象,如

var str = '{"name":"huangxiaojian","age":"23"}'

结果:

JSON.parse(str)

Object
  1. age"23"
  2. name"huangxiaojian"
  3. __proto__Object

 stringify()用于从一个对象解析出字符串,如

var a = {a:1,b:2}

结果:

JSON.stringify(a)

"{"a":1,"b":2}"

存储数据

用 web storage 做数据库检索的时候可以用用到。如果存入多个数据可以创建 object 对象,然后把所获取的value 值也就是字符串分别赋给创建的对象的自定义属性。私有的对象也受到保护。

例子1:

 function iocalStorage(id) {
           var obj=new Object;
        obj.name=document.getElementById("name").value;
        obj.email=document.getElementById("email").value;
        obj.tel=document.getElementById("tel").value;
        obj.memo=document.getElementById("memo").value;
        var str=JSON.stringify(obj);
        localStorage.setItem(obj.name, str);
        alert("你好已保存");
        //readiocalTwo('iocal_msg'); 读取内容
        
        //readiocalThree('iocal_msg');//检索内容
        
        //readiocalFour(id)//检索内容
    } 


<div class="box">
    <ul>
        <li><span>姓名:</span> <input class="txt" type="text"  id="name"></li>
        <li><span>EMIL:</span> <input class="txt" type="text" id="email"></li>
        <li><span>电话号码:</span> <input class="txt" type="text" id="tel"></li>
        <li><span>备注:</span> <input class="txt" type="text" id="memo"></li>
    </ul>
   <div class="bottom">    
     <input type="button" value="保存数据" class="btn" οnclick="iocalStorage('iocal_input')">
   </div>

</div>

 

检索数据

 第一种读取方式: 全部读取,通过循环key值输出

//读取根据key function readiocal(id) { var traget = document.getElementById(id); var msg = localStorage.getItem("message"); for(var i=0;i<localStorage.length;i++) { var key=localStorage.key(i); traget.innerHTML+=key+":"+localStorage.getItem(key)+"<br/>"; } } html部分: <input type="button" class="fl btn" value="检索数据" οnclick="readiocal('iocal_msg')"> <p id="iocal_msg"> <p>

 第二种读取方式: 读取根据ID 根据输入的key值 找出匹配的整条数据

 //读取根据ID
    function readiocalTwo(id) {
        var traget = document.getElementById(id);
        var findTxt =document.getElementById("find").value;
        var msg=localStorage.getItem(findTxt);//根据输入的值检索
         traget.innerHTML+=msg+"<br/>";
        
    }

html:

<div class="box">
<div class="jiansuo">
    <span class="fl">检索:</span><input id="find" type="text" class="txt fl"> <input type="button" class="fl btn" value="检索数据" οnclick="readiocal('iocal_msg')">
   </div>
    <p id="iocal_msg">

    <p>

</div>

输出形式的控制 通过 JSON.parse() 把字符串转化为对象。

 //检索 根据输入ID框的value值
    function readiocalFour(id) {
        
        var traget = document.getElementById(id);
        traget.innerHTML="";
        var findTxt =document.getElementById("find").value;
        var obj=localStorage.getItem(findTxt);
        var data=JSON.parse(obj);
        var reslut="姓名 "+data.name+"<br>";
            reslut+="EMIl "+data.email+"<br>";
            reslut+="tel "+data.tel+"<br>";
            reslut+="memo "+data.memo+"<br>";
            
        var msg=localStorage.getItem(findTxt);//
         traget.innerHTML+=reslut+"<br/>";
    }
<div class="box">
 <div class="jiansuo">
    <span class="fl">检索:</span><input id="find" type="text" class="txt fl"> <input type="button" class="fl btn" value="检索数据" οnclick="readiocalTwo('iocal_msg')">
   </div>
    <p id="iocal_msg">

    <p>
</div>

 

 

 

转载于:https://www.cnblogs.com/shuijingcao/p/5347507.html

相关文章:

  • tablib.Dataset()操作exl类型数据之“类方法”研究
  • 用自己的机器人和ubuntu PC实现通信和控制--26
  • Ubuntu计算文件md5值命令
  • Maven Dependency Scope用法
  • 结对编写四则运算
  • Appium 一个测试套件多次启动android应用
  • zookeeper 配置
  • JAVA基础知识总结
  • 敌兵布阵_区间求和问题_线段树 or 树状数组
  • CI 笔记(1)
  • hdu 1874 畅通工程续
  • 补--第四周
  • UI-定时器与动画使用总结
  • J2EE 课件2
  • Oracle SQL monitor
  • css属性的继承、初识值、计算值、当前值、应用值
  • nodejs调试方法
  • PermissionScope Swift4 兼容问题
  • PHP CLI应用的调试原理
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • 简析gRPC client 连接管理
  • 那些年我们用过的显示性能指标
  • 数据可视化之 Sankey 桑基图的实现
  • 一个项目push到多个远程Git仓库
  • 仓管云——企业云erp功能有哪些?
  • #define与typedef区别
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $(selector).each()和$.each()的区别
  • $.ajax中的eval及dataType
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (篇九)MySQL常用内置函数
  • (三十五)大数据实战——Superset可视化平台搭建
  • (生成器)yield与(迭代器)generator
  • (十六)串口UART
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)shell调试方法
  • .bat批处理(一):@echo off
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET Core WebAPI中封装Swagger配置
  • .net core 连接数据库,通过数据库生成Modell
  • .net与java建立WebService再互相调用
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • [1525]字符统计2 (哈希)SDUT
  • [2016.7 day.5] T2
  • [20171113]修改表结构删除列相关问题4.txt
  • [Electron]ipcMain.on和ipcMain.handle的区别
  • [HNCTF 2022 WEEK2]easy_include 文件包含遇上nginx
  • [jobdu]不用加减乘除做加法
  • [leetcode] 66. 加一
  • [LeetCode]Multiply Strings
  • [LeetCode]剑指 Offer 42. 连续子数组的最大和
  • [PHP源码阅读]empty和isset函数