0

セレクターを使用してJavaScriptオブジェクトにキーを動的に作成しようとしています:jQuery

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

これは壊れています。この方法でキーを動的に作成することは可能ですか?

4

2 に答える 2

3

次の 2 つのステートメントで実行できます。

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 つだけ含まれている場合にのみ意味があることにも注意してください。

于 2013-01-22T09:32:59.670 に答える
1

一度に複数のフィールドで機能させることもできます。

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

隠しフィールドが1つしかない場合の、もう1つのより凝ったバージョン:

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