0

次のコードを動的に取得したかった:

var items = $("#scenario_select option");

上記は (with dropDownObj= $("#scenario_select");:

function someFunction(dropDownObj){
    var items = $(dropDownObj + " option");
    var items = $("#" + dropDownObj + " option");
}

これはどちらも機能しません。それに関するヘルプは見つかりませんでした(オプションタグがない場合のみ)

どんな助けでも大歓迎です。

4

2 に答える 2

6

これを試して:

function someFunction(dropDownObj){
    var items = $('#' + dropDownObj.prop('id') + " option");
}

しかし、それを行うためのより「適切な」方法は、@Exception で提案されているように find を使用するか、次を使用することだと思います。

function someFunction(dropDownObj){
    var items = $("option", dropDownObj);
}

これは基本的に .find() と同じことを行います。2つの比較については、このSOの質問を参照してください(tl; dr:それらはほとんど同等です)。

(コメントで指摘したように)アイテムの数を見つけるには、次を使用することもできます。

function someFunction(dropDownObj){
    var items = $("option", dropDownObj).length;
}

これは、コメントに投稿したソリューションよりも少し短いです。

また、次の点にも注意してください。

dropDownObj= $("#scenario_select");

これはすでに jQuery オブジェクトであり、$ を使用してラップする必要はありません。これを念頭に置いて、ソリューションは次のようになります。

var items = dropDownObj.children('option').length;
于 2013-09-25T12:38:04.090 に答える
3

これはうまくいくはずです。

 var dropDownObj = $('#yourDropDownID');
 dropDownObj.find('option')
于 2013-09-25T12:38:08.620 に答える