1

簡単な解決策があると確信しています。

開始シナリオは次のとおりです。要素を作成し、<select>動的に入力します。

function CreateDropDown(name, id, optionList)
{
    var combo = $("<select></select>").attr("id", id).attr("name", name);

    $.each(optionList, function (i, item) {
        combo.append("<option value='"+item.val+"'>" + item.el + "</option>");
    });

    return combo;
}

目的は、outerHTMLを抽出することでした。以下は正しく機能します。

combo[0].outerHTML();

しかし、配列のインデックス付けは非常に大雑把だと思います。少なくとも、jQuery()関数が単一の要素配列を返すすべての場合。

質問

jQuery()関数が単一の要素配列を返すときはいつでも、配列のインデックスを作成せずに一意の要素を取得することは可能ですか?

デモ

4

3 に答える 3

3

jQueryオブジェクトは本質的にDOMオブジェクトのコレクションであり、jQueryオブジェクトを単一のアイテムのラッパーとして扱う構文上の方法はありません。

jQueryのドキュメントでは、 getメソッドを使用して個々のDOM要素にアクセスすることを提案しています。インデックス演算子とのパフォーマンスの違いについてはコメントしてい.get()ませんが、「各jQueryオブジェクトも配列になりすます」と書かれているため、インデックス演算子は別のメソッド呼び出しを追加するだけであると想定してもかまいません。

于 2012-11-09T15:34:21.390 に答える
2

「配列のインデックス作成が非常にラフだと感じる」場合は、独自の優れたヘルパーメソッドを作成できます。のようなもの:

window.$$ = function(){
   return jQuery.apply(jQuery,arguments)[0];
}

使用法:

var combo = $$("<select></select>");
console.log( combo.outerHTML );
于 2012-11-09T15:46:24.180 に答える
1

.get()html要素を取得するために使用します。

http://api.jquery.com/get/

于 2012-11-09T15:34:20.030 に答える