猿问

关于数组push对象的问题

html代码:


<form id="div">

    姓名:<input type="text" name="name" value=""><br/>

    年龄:<input type="text" name='age' value=""><br/>

    <button id="save">一键缓存</button>

</form>

js代码:


$(function () {

    $('#save').click(function () {

        var history = [];

        //先清除原来的缓存

        window.localStorage.formHistory = '';

        for(var i = 0; i < $('#div input').length; i++){

            if( $('#div input')[i].type == 'text'){

                var prop = $('#div input')[i].name;

                alert(prop);

                history.push({ prop : $('#div input')[i].value});

            }

        }

        window.localStorage.formHistory = JSON.stringify(history);

    })

})

点击button后,我是想将input中的值存入localstorage中,但是在控制台中发现结果如下:


[{"prop":"11"},{"prop":"22"}]

我想存入的结果是如下:


[{"name":"11"},{"age":"22"}]

就是让程序能够自动获得每个input标签的name属性作为存入对象的属性,代码要怎么修改呢?为什么我这样写不行呢?先谢了!


UYOU
浏览 1036回答 1
1回答

慕盖茨4494581

history.push({ [prop]: $('#div input')[i].value });或者var h = {};h[prop] = $('#div input')[i].value;history.push(h);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答