attr与prop区别

$(function() {
    //渲染页面
    load()
    $("#title").on("keydown", function(event) {
            if (event.keyCode === 13) {
                var local = getDate()
                    // 把最新的数据追加个local数组
                local.push({ title: $(this).val(), done: false })
                saveDate(local)
            }
            load()
        })
        // 删除操作
    $("ol").on("click", "a", function() {
        var data = getDate()

        var index = $(this).attr("id")
            // splice:删除数组的元素
        data.splice(index, 1)
        saveDate(data)
        load()
    })
    $("ol,ul").on("click", "input", function() {
            var data = getDate()
            var index = $(this).siblings("a").attr("id")
                // 固有属性使用prop,自定义属性使用attr
            data[index].done = $(this).prop("checked")
        })
        // 读取本地存储的数据
    function getDate() {
        var data = localStorage.getItem("todolist")

        if (data !== null) {
            // 本地存储里面的数据是字符串格式的,需要使用JSON.parse转成对象格式
            return JSON.parse(data)
        } else {
            return []
        }
    }
    // 保存本地存储数据
    function saveDate(data) {
        localStorage.setItem("todolist", JSON.stringify(data))
    }
    // 渲染加载数据
    function load() {
        var data = getDate()
            // 遍历之前先要清空ol里面的元素
        $("ol").empty()
            //通过.each遍历这个数据 
        $.each(data, function(i, n) {
            $("ol").prepend("<li><input type='checkbox'><p>" + n.title + "</p><a href='javascript:;' id=" + i + "></a></li>")
        })
    }
})

id为a标签自定义的属性,在jQuery中使用attr调用该自定义的属性

复选框checkbox的自有属性checked,则使用prop

 

这是其中的一个li(里面包含复选框和a标签,为兄弟节点)可以使用siblings用对应a标签的id来代表复选框的id

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值