1

jqueryでフォームを生成して送信する方法を見つけるためだけにGoogleを検索していたところ、コードスニペットが見つかりましたが、明確ではないことがいくつかありました。

function submitValues(url, params) {
var form = [ '<form method="POST" action="', url, '">' ];

for(var key in params) 
    form.push('<input type="hidden" name="', key, '" value="', params[key], '"/>');

form.push('</form>');

jQuery(form.join('')).appendTo('body')[0].submit();
}

なぜ [] この 3 番目のブラケットは次のように使用されますか

var form = [ '<form method="POST" action="', url, '">' ];

jQuery(form.join('')).appendTo('body')[0].submit();の意味は何ですか? なぜform.join('')が使用され、なぜappendTo('body')[0] のように書くのか なぜ[0]

上記の太字の構文について詳しく教えてください。ありがとう

4

3 に答える 3

1

質問順:

  1. 括弧[]は配列を定義します。したがって、2行目では、3つの項目で配列を定義しています。

    var form = [ "first item", "second item", "third item", ... etc ];
    
  2. form.join('')配列のすべての要素をform空の文字列の区切り文字で結合するためform、配列からの部分文字列が連結された文字列になります。

  3. jQuery(form.join(''))文字列をDOM要素に変換し、appendTo("body")これらの要素(<form><input> ... </form>)を。内に追加しますbody

  4. を使用すると、jQueryオブジェクトとしてではなく、DOM要素として[0]取得できます。formネイティブform要素にsubmitは、で呼び出されるメソッドがあり.submit()ます。

ネイティブJavaScriptのメソッドと関数に疑問がある場合は、MDNを読むことができます。jQueryのドキュメントはapi.jquery.comで提供されています。

于 2012-06-04T12:36:59.717 に答える
1
  1. [] 括弧は、フォームが配列であることを意味します。

  2. Array.joinメソッドは、配列内のすべての文字列を 1 つの大きな文字列に連結します。コードでは、これはフォーム html マークアップになります。

  3. appendTo('body')メソッドは、form-html をドキュメントの本文に追加し、jquery セレクターを返します。

  4. jQuery セレクターは複数の要素 (配列) を指すことができるため、送信する最初の要素であることを指定する必要があります。したがって、[0]。

于 2012-06-04T12:38:14.047 に答える
1

これがあなたの疑問のいくつかに対する説明です。

  1. のように要素を正方形で囲む[ '<form method="POST" action="', url, '">' ]ことで配列になります。

  2. form.join('').push()これにより、メソッドを使用して作成されたフォーム配列が結合されます。

  3. [0] を jQuery セレクターに使用すると、jQuery オブジェクトからのノードになります。通常の JavaScript 操作を使用できる場所。

  4. .appendTo('body')これにより、コンテンツが body 要素に追加されます。

于 2012-06-04T12:43:59.957 に答える