jQuery电话簿(storage本地存储)

一、代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    <title>jQuery电话簿(storage本地存储)</title>
    <style>
        button.confirm-btn {
            border-radius: 5px;
            margin: 3px 0;
        }
    </style>
</head>

<body>
    <div>
        <input type="text" id='name'>姓名<br>
        <input type="text" id='tel'>电话<br>
        <input type="text" id='address'>地址<br>
        <button class="confirm-btn">增加用户</button>
    </div>
    <table border="1">
        <thead>
            <tr>
                <td>编号</td>
                <td>姓名</td>
                <td>电话</td>
                <td>地址</td>
                <td>操作</td>
            </tr>
        </thead>
        <tbody>

        </tbody>
    </table>
    <script>
        ! function(window, document, $, undefined) {
            // 创建一个电话本业务的对象
            let TelBook = {
                // 程序的入口,在外面执行这个程序只要调用入口文件即可
                init() {
                    // 在入口文件中绑定所有事件(初始化事件)
                    this.initEvent();
                    // 不加this,调用全局
                    this.renderTable()
                },
                initEvent() {
                    $('.confirm-btn').on('click', {
                        obj: this
                    }, this.confirmBtnClick)
                    $('tbody').on('click', '.del-btn', {
                        obj: this
                    }, this.onDelBtnClick)
                    $('tbody').on('click', '.update-btn', {
                        obj: this
                    }, this.onUpdataBtnClick)
                },
                onUpdataBtnClick(e) {
                    let id = $(this).attr('uId');
                    let arr = e.data.obj.get();
                    let obj = arr.find(item => item.id == id);
                    Object.keys(obj).forEach(key => {
                        if ($(`#${key}`).length > 0) {
                            $(`#${key}`).val(obj[key])
                        }
                    })
                    $('.confirm-btn').html('修改用户').attr('id', id)
                },
                onDelBtnClick(e) {
                    let arr = e.data.obj.get();
                    let id = $(this).attr('uId');
                    let index = arr.findIndex(item => item.id == id);
                    arr.splice(index, 1);
                    e.data.obj.save(arr);
                    e.data.obj.renderTable()
                },
                confirmBtnClick(e) {
                    let arr = e.data.obj.get();
                    let obj = {};
                    $('input')
                        .each(function(index, item) {
                            obj[item.id] = $(item).val()
                        }).val('')
                    if (this.id) {
                        obj.id = this.id;
                        arr = arr.map(item => {
                            if (item.id == this.id) {
                                item = obj
                            }
                            return item;
                        })
                    } else {
                        obj.id = Date.now();
                        arr.push(obj);
                    }
                    e.data.obj.save(arr);
                    e.data.obj.renderTable();
                    this.id = ''
                },
                renderTable() {

                    let arr = this.get();
                    let newArr = [];
                    $.each(arr, (index, item) => {
                        newArr.push(
                            `
                            <tr>
                                <td>${item.id}</td>
                                <td>${item.name}</td>
                                <td>${item.tel}</td>
                                <td>${item.address}</td>
                                <td>
                                    <button uId="${item.id}" class='del-btn'>删除</button>
                                    <button uId="${item.id}" class='update-btn'>修改</button>
                                </td>
                            </tr>
                            `
                        )
                    })
                    $('tbody').html(newArr.join(''))
                },
                // 读取webStorage
                get() {
                    return JSON.parse(localStorage.getItem('userList')) || []
                },
                // 存储webStorage
                save(arr) {
                    localStorage.setItem('userList', JSON.stringify(arr))
                }
            }
            TelBook.init()
        }(window, document, jQuery)
    </script>
    <script>
        console.log("%c ", 'margin-left:0px;padding:100px 100px;background-image: url("https://liujianwei695.gitee.io/minifile/images/officialAccount.jpg");background-size: 200px 200px;background-position: center;background-repeat: no-repeat;');
    </script>
</body>

</html>
二、效果演示

电话簿效果演示


标签:jQuery,HTML,storage


更多演示案例,查看 案例演示


欢迎评论留言!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间小美味695

您的鼓励是我创作的动力,感谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值