是否有类似.push的功能来动态地向对象添加值?

时间:2015-01-06 06:30:08

标签: javascript jquery object

使用arrays时,您可以使用.push方法向阵列动态添加新值。使用对象时是否可以这样做?

例如我有一个文本框,在用户输入内容后点击“添加”可以将值添加到对象中,以便保存每个值,例如

示例:

{
  message: "This is the first message",
  message: "This is the second message",
  message: "Third message etc"  
}

代码:

$(document).ready(function() {

        // var objArray = [];
        var objObject = {};


        $('#icecream').on('click', function() {
            $(this).animate({'height': '200px'}, 300);  
        });

        $('#add').on('click', function() {
            var value = $('#icecream').val();
            // objArray.push(value);
            // console.log(objArray);
            objObject = {
                message: value,
            }
            console.log(objObject);

        }); 

    });

4 个答案:

答案 0 :(得分:2)

{
  message: "This is the first message",
  message: "This is the second message",
  message: "Third message etc"  
}

这不是一个有效的对象。您不能拥有相同的属性三次(密钥必须是唯一的。)您可能需要一个数组:

var messageObj = { 
 messages: [
   "This is the first message",
   "This is the second message",
   "Third message etc"
]};

添加新消息将是:

messageObj.messages.push("Forth message");

您可以动态地向对象添加属性:

var obj = {};
var propName = "message";
var propVal = "This is a message";

obj[propName] = propVal;
console.log(obj); // { message: "This is a message" }

JSFIDDLE

答案 1 :(得分:0)

我认为您所需要的只是objObjects.message='This is the second message';

如果你真的想保留每一个,也许你需要一个数组:

objObjects.messages = [
  'This is the first message',
  'This is the second message',
   // etc
];

答案 2 :(得分:0)

此处data是jQuery objectObject必须keyvalue配对。

data.message = "This is the first message";

答案 3 :(得分:0)

你可以这样做:

objObject.message = "...";

将属性添加到对象的末尾会将其添加为该对象中的变量。