Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript对象中动态创建密钥_Javascript_Jquery - Fatal编程技术网

在JavaScript对象中动态创建密钥

在JavaScript对象中动态创建密钥,javascript,jquery,Javascript,Jquery,我正在尝试使用jQuery选择器在JavaScript对象中动态创建一个键: { $("form").children("input[type=hidden]").attr("name"): $("form").children("input[type=hidden]").val() } 这是突破。可以用这种方式动态创建密钥吗?可以用两种语句来实现: var obj = {}; obj[$("form").children("input[type=hidden]").attr("name"

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

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

这是突破。可以用这种方式动态创建密钥吗?

可以用两种语句来实现:

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

您可以通过两条语句来完成:

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

您还可以让它同时处理多个字段:

var obj = {};
$('form > input[type="hidden"]').each(function (i, el) {
    obj[el.name] = el.value;
});
如果您只有一个隐藏字段,另一个更奇特的版本:

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

您还可以使其同时处理多个字段:

var obj = {};
$('form > input[type="hidden"]').each(function (i, el) {
    obj[el.name] = el.value;
});
如果您只有一个隐藏字段,另一个更奇特的版本:

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

您是只有一个输入元素,还是应该对多个值起作用?只有一个隐藏的输入。我不建议使用
input[type=hidden]
选择器;如果添加另一个隐藏的输入值,可能会破坏代码。如果您给它命名会更好。您是只有一个输入元素,还是它可以用于多个值?只有一个隐藏的输入。我不建议使用
input[type=hidden]
选择器;如果添加另一个隐藏的输入值,可能会破坏代码。如果你给它命名会更好。不错,但OP评论说他只有一个字段。哦,对了,我没看到。无论如何,也许有人会需要它。是的,你应该保留你的答案,这可能有用;)但请注意,您的选择器并不等同于OP给出的选择器。您可能应该添加
(假设OP有很好的理由使用
子项
)。不错,但OP评论说他只有一个字段。哦,对了,我没看到。无论如何,也许有人会需要它。是的,你应该保留你的答案,这可能有用;)但请注意,您的选择器并不等同于OP给出的选择器。您可能应该添加
(假设OP有很好的理由使用
子对象
)。