在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/數(shù)據(jù)庫  HTML/ 關(guān)于數(shù)組push對象的問題

關(guān)于數(shù)組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中,但是在控制臺中發(fā)現(xiàn)結(jié)果如下:

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

我想存入的結(jié)果是如下:

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

就是讓程序能夠自動獲得每個input標簽的name屬性作為存入對象的屬性,代碼要怎么修改呢?為什么我這樣寫不行呢?先謝了!

回答
編輯回答
墨沫

以變量為鍵名時,應(yīng)該用 []運算符,而不是 .運算符,所以

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

應(yīng)該改為

var obj = {};
obj[prop] = $('#div input')[i].value;
history.push(obj);
2018年6月25日 04:54
編輯回答
脾氣硬
history.push({ [prop]: $('#div input')[i].value });

或者

var h = {};
h[prop] = $('#div input')[i].value;
history.push(h);
2018年8月10日 20:21