在JavaScript对象中动态创建密钥

时间:2013-01-22 09:31:17

标签: javascript jquery

我正在尝试使用JavaScript选择器在jQuery对象中动态创建密钥:

{
  $("form").children("input[type=hidden]").attr("name"): $("form").children("input[type=hidden]").val()
}

但这很突破。是否可以通过这种方式动态创建密钥?

2 个答案:

答案 0 :(得分:3)

您可以用两个语句来完成:

var obj = {};
obj[$("form").children("input[type=hidden]").attr("name")]
    = $("form").children("input[type=hidden]").val();

我个人这样写它是为了避免重新创建jQuery集:

var obj = {}, $obj = $("form").children("input[type=hidden]");
obj[$obj.attr("name")] = $obj.val();

另请注意,只有jQuery集只包含一个元素时才有意义。

答案 1 :(得分:1)

您还可以同时使用多个字段:

var obj = {};
$('form > input[type="hidden"]').each(function (i, el) {
    obj[el.name] = el.value;
});

如果您只有一个隐藏字段,则会出现另一个更精彩的版本:

var obj = $('form > input[type="hidden"]').serializeArray()[0];