基于jQuery实现王者荣耀英雄自定义增删改查功能 源码

使用JSON实现存储本地功能,此页仅有js部分代码

作品示例图

 

给添加按钮添加点击事件,获取输入框的值,添加判断,当值为空时不添加,否则将输入的值存储到本地的数组中,然后保存到本地

//--------增-----------------增
    $("#addbtn").on("click", function () {
        $(".type .cl .all").siblings('li').removeClass("sel");
        $(".type .cl .all").addClass("sel");
        let inputName = $("#hero-name").val();
        let occ = $("#pro").val();
        let img = "images/" + inputName + ".png";
        var local = getDate();
        if (occ == ""||inputName.trim()=="") {
            alert("输入有误!");
            $("#hero-name").val("");
            $("#pro").val("");
        } else {
            local.push({
                heroName: inputName,
                occupation: occ,
                imgurl: img
            })
            $("#hero-name").val("");
            $("#pro").val("");
            saveLocal(local);
        }
    });

给每个按钮动态绑定点击事件,获取点击的删除按钮所属于哪一个小li中,然后读取本地中的数据,将数据通过splice()方法删除数据后保存本地然后重新渲染

   // ------------删-----------------------------
    $(".hero").on("click", ".del", function () {
        var local = getDate();
        var index = $(this).parent().parent().attr("id");
        local.splice(index, 1);
        saveLocal(local);
    })

改这个当时使用了Bootstrap引用模态框,但是通过引用模态框出现了多次修改的bug,最后应该是因为没有读取本地,而造成记录上一个修改的li,是下次修改时,上一个也发生变化,思路仍旧是先读取本地的json字符串,然后将输入的值放入本地,最后渲染

 //------------------改------------------------
    $(".hero").on("click", ".change", function () {
        var example = $(this).parent().parent();
        // console.log(example);
        var local = getDate();
        $("#heroName").val("");
        $("#occ").val("");
        $("#login").click(function () {
            var index = example.attr("id");
            var nameInput = $("#heroName").val();
            var occInput = $("#occ").val();
            var imgNew = "images/" + nameInput + ".png";
            if(nameInput==""||occInput==""){
                
            }else{
                local.splice(index, 1, {
                    heroName: nameInput,
                    occupation: occInput,
                    imgurl: imgNew
                });
                // console.log(index);
                saveLocal(local);
            }
        })
    })

该功能我又重新写了一个模块,让查到的内容显示在查询的div中,然后把原来隐藏的清除按钮显示出来,思路:通过获取输入框的值,给搜索框添加事件,清空div中的内容,再把与本地数据中相匹配的值,添加到div中

 

  //-------------------------查--------------------
    $("#clearSearch").click(function () {
        $(".searchHero").empty();
        $(".searchList").hide();
    })
    $("#searchBtn").click(function () {
        $(".searchList").show();
        var searchName = $("#search").val();
        $("#clearSearch").show();
        var local = getDate();
        // console.log(searchName);
        if (searchName.trim() == ("")) {
            alert("请输入名称");
            $("#search").val("");
        } else {
            $("#search").val("");
            $(".searchHero").empty();
            for (let i = 0; i < local.length; i++) {
                if (searchName == local[i].heroName) {
                    console.log(i);
                    $(".searchHero").append("<li class='heroLi' id=" + i + "><div class='example'><img src='" + local[i].imgurl + "' class='hero-img'><p id='occupation'>" + local[i].occupation + "</p><p class='name'>" + local[i].heroName + "</p></div></li>")
                }
            }

        }
    })

 

 

    //-----------------------分类----------------------
    //全部
    $(".cl").click(function () {
        $(".searchList").hide();
    })
    $(".all").click(function () {
        render();
    })

    //坦克
    $(".tank").click(function () {
        var local = getDate();
        $(".hero").empty();
        for (let i = 0; i < local.length; i++) {
            if (local[i].occupation == "坦") {
                $(".hero").append(
                    "<li class='heroLi' id=" + i + "><div class='example'><img src='" + local[i].imgurl + "' class='hero-img'><img src='images/错误.png' class='del'><button type='button' class='change' data-toggle='modal' data-target='#exampleModal'><img src='images/修改.png' class='changeimg'/></button><p id='occupation'>" + local[i].occupation + "</p><p class='name'>" + local[i].heroName + "</p></div></li>");
            }

        }
    })
    //战士
    $(".warrior").click(function () {
        var local = getDate();
        $(".hero").empty();
        for (let i = 0; i < local.length; i++) {
            if (local[i].occupation == "战") {
                $(".hero").append(
                    "<li class='heroLi' id=" + i + "><div class='example'><img src='" + local[i].imgurl + "' class='hero-img'><img src='images/错误.png' class='del'><button type='button' class='change' data-toggle='modal' data-target='#exampleModal'><img src='images/修改.png' class='changeimg'/></button><p id='occupation'>" + local[i].occupation + "</p><p class='name'>" + local[i].heroName + "</p></div></li>");
            }

        }
    })
    //刺客
    $(".assassin").click(function () {
        var local = getDate();
        $(".hero").empty();
        for (let i = 0; i < local.length; i++) {
            if (local[i].occupation == "刺") {
                $(".hero").append(
                    "<li class='heroLi' id=" + i + "><div class='example'><img src='" + local[i].imgurl + "' class='hero-img'><img src='images/错误.png' class='del'><button type='button' class='change' data-toggle='modal' data-target='#exampleModal'><img src='images/修改.png' class='changeimg'/></button><p id='occupation'>" + local[i].occupation + "</p><p class='name'>" + local[i].heroName + "</p></div></li>");
            }

        }
    })
    //法师
    $(".master").click(function () {
        var local = getDate();
        $(".hero").empty();
        for (let i = 0; i < local.length; i++) {
            if (local[i].occupation == "法") {
                $(".hero").append(
                    "<li class='heroLi' id=" + i + "><div class='example'><img src='" + local[i].imgurl + "' class='hero-img'><img src='images/错误.png' class='del'><button type='button' class='change' data-toggle='modal' data-target='#exampleModal'><img src='images/修改.png' class='changeimg'/></button><p id='occupation'>" + local[i].occupation + "</p><p class='name'>" + local[i].heroName + "</p></div></li>");
            }

        }
    })
    //射手
    $(".shooter").click(function () {
        var local = getDate();
        $(".hero").empty();
        for (let i = 0; i < local.length; i++) {
            if (local[i].occupation == "射") {
                $(".hero").append(
                    "<li class='heroLi' id=" + i + "><div class='example'><img src='" + local[i].imgurl + "' class='hero-img'><img src='images/错误.png' class='del'><button type='button' class='change' data-toggle='modal' data-target='#exampleModal'><img src='images/修改.png' class='changeimg'/></button><p id='occupation'>" + local[i].occupation + "</p><p class='name'>" + local[i].heroName + "</p></div></li>");
            }

        }
    })
    //辅助
    $(".assist").click(function () {
        var local = getDate();
        $(".hero").empty();
        for (let i = 0; i < local.length; i++) {
            if (local[i].occupation == "辅") {
                $(".hero").append(
                    "<li class='heroLi' id=" + i + "><div class='example'><img src='" + local[i].imgurl + "' class='hero-img'><img src='images/错误.png' class='del'><button type='button' class='change' data-toggle='modal' data-target='#exampleModal'><img src='images/修改.png' class='changeimg'/></button><p id='occupation'>" + local[i].occupation + "</p><p class='name'>" + local[i].heroName + "</p></div></li>");
            }

        }
    })

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值