关于localStorage本地存储的问题?

 var aaa = 'afwefrwefwef';
            var obj = {};
            var num = 1;
            var storage = window.localStorage;
            $('#button').click(function(){
                num++;
                obj[num] = aaa;
                storage.setItem("oXML", JSON.stringify(obj));
            })

这是代码,我每次点击button后存储是正常的,但是刷新页面后,再点击button之前存储的数据就会被清空,请问有什么方法可以让刷新后再点击也不清空数据吗?


<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<input type="button" id="button">
<script>
    var aaa = 'afwefrwefwef';
    var storage = window.localStorage;
    ////////////
    var obj = storage.getItem("oXML");
    obj = obj ? JSON.parse(obj) : {};
    ////////////
    console.log(obj)
    var num = 1;
    $('#button').click(function () {
        num++;
        obj[num] = aaa;
        storage.setItem("oXML", JSON.stringify(obj));
    })
</script>

再点击之后,之前的数据被你覆盖了,你可以将之前的数据取出来,和之后的数据合并再写入localstorage

同意楼上,在setItem之前先getItem将之前的值取出来,然后和后面的值拼接起来再setItem