js本地存储中localStorage的使用案例

<style>
    div {
      text-align: center;
    }

    table {
      width: 640px;
      border: 1px solid gray;
      border-collapse: collapse;
      margin: 50px auto;
    }

    thead tr {
      background: #ccc;
    }

    th,
    td {
      width: 160px;
      line-height: 35px;
      border: 1px solid gray;
      text-align: center;
    }
  </style>

</head>

<body>
  <div>
    <label for="">用户名:</label>
    <input type="text" id="txt1">
    <label for="">年龄:</label>
    <input type="text" id="txt2">
    <button id="btn">添加</button>
    <table>
      <thead>
        <tr>
          <th>编号</th>
          <th>姓名</th>
          <th>年龄</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody id="box">

      </tbody>
    </table>
    <!-- 
   
     -->
    <script>
      //先判断本地存储中有没有数据,没有数据就是空数组。
      var data = JSON.parse(localStorage.getItem("data"))||[];
      //编号
      var index = localStorage.getItem("index")||1;

      var btn = document.getElementById("btn");
      btn.onclick = function(){
        //获取用户名
        var txt1 = document.getElementById("txt1")
        var username = txt1.value;
        //获取年龄
        var txt2 = document.getElementById("txt2")
        var age = txt2.value;
        //生成一个单元行
        initTr(index,username,age);
        //让本地存储中添加一条记录。
        let obj = {index,username,age};
        data.push(obj);
        index++;
        localStorage.setItem("data",JSON.stringify(data));
        localStorage.setItem("index",index);
      }
      var tbody = document.getElementById("box")
      for (var k = 0; k < data.length; k++) {
        initTr(data[k].index,data[k].username,data[k].age)
      }

      //生成一个单元行。
      function initTr(id,username,age) {
        //创建tr节点,创建4个td节点
        var tr = document.createElement("tr");
        var str = `
        <td>${id}</td>
        <td>${username}</td>
        <td>${age}</td>
        <td>
          <button class="del">删除</button>
        </td>`

        tr.innerHTML = str;
        
        //获取删除按钮
        var delBtn = tr.querySelector(".del");
        //给按钮绑定点击事件
        delBtn.onclick = function () {
          //获取删除行的index
          let delIndex = this.parentNode.parentNode.firstElementChild.innerHTML;
          data = data.filter(item=>item.index != delIndex);
          //更新到本地存储中
          localStorage.setItem("data",JSON.stringify(data));
          //找到当前行  tr 删除
          delBtn.parentNode.parentNode.remove();
        }
       
        //tr插入到tbody中。
        tbody.appendChild(tr);
      }
    </script>
  </div>

</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值