0

選択ボックスに動的に値を追加する次のコード セグメントで、jQuery の .append 関数がどのように機能するかについて質問があります。

for (var i=currentYear; i >= minYear; i--){
    $('#year').append($("<option/>", { value: i, text: i}));
}

Google検索中に同様のコードをオンラインで見つけた後、この方法で .append を使用したことがあるので、このコードが機能することは既に知っています。ただし、同様のコードを見つけた Web ページ ( https://stackoverflow.com/a/3155663/3120918 ) では、それが機能する理由が説明されていませんでした。.append 関数 ( http://api.jquery.com/append/ ) に関する公式の jQuery ドキュメント ページを用意しましたが、自己終了オプション要素と配列 ( $("<option/>", {value: key, text: value })) を append 関数の単一パラメーターとして使用します。誰かがこれがどのように、そしてなぜ機能するのかを説明してくれることを望んでいました。

4

1 に答える 1

2

自己終了オプション要素と配列の両方を含む jQuery オブジェクト ( $("<option/>", {value: key, text: value }))

いや、それは「要素を作成する」ためのjQueryコンストラクタの特別な形式です:

にパラメータとして文字列が渡されると$()、jQuery はその文字列が HTML のように見えるかどうかを調べます [そうである場合]、jQuery は HTML で記述されているように新しい DOM 要素を作成しようとします。

[…]

の 2 番目の引数jQuery()は、メソッドに渡すことができるプロパティのスーパーセットで構成されるプレーン オブジェクトを受け入れることができます.attr()

重要: 2 番目の引数が渡される場合、最初の引数の HTML 文字列は、属性のない単純な要素を表す必要があります。jQuery 1.4 では、任意のイベント タイプを渡すことができ、次の jQuery メソッドを呼び出すことができます: valcsshtmltextdata、または。widthheightoffset

[…]

<option>したがって、ここで行われるのは、jQuery コレクションにラップされた、指定された値とテキストを持つ新しい要素の構築です。次に、これが に渡されappend、(通常どおり) コレクションのすべての要素がその要素に追加されます。ここでは、新しいオプションが#year <select>要素に追加されます。

于 2013-12-19T22:56:02.690 に答える