0

我正在尝试JavaScript使用选择器在对象中动态创建一个键jQuery

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

不过,这很糟糕。是否可以通过这种方式动态创建密钥?

4

2 回答 2

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 集仅包含一个元素时才有意义。

于 2013-01-22T09:32:59.670 回答
1

您还可以使其一次使用多个字段:

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

如果你只有一个隐藏字段,另一个更花哨的版本:

var obj = $('form > input[type="hidden"]').serializeArray()[0];
于 2013-01-22T09:43:39.903 回答