jQueryの選択タグ内のオプションタグの数を数える


159

jQueryを使用<option>して<select>DOM要素のs の数を数えるにはどうすればよいですか?

<select data-attr="dropdown" id="input1">
  <option value="Male" id="Male">Male</option>
  <option value="Female" id="Female">Female</option>
</select>

DOM要素<option>内のタグの数を確認したいのですが<select>、ドロップダウンボックスの対応するオプション値を含むその数の入力フィールドで設定パネルを開き、プレビューでもう一度変更します。パネル。

上記のドロップダウンボックスは、jQueryによって生成されるプレビューパネルにあります。

回答:



51

W3Cソリューション:

var len = document.getElementById("input1").length;

5
最新のJavaScriptを使用したこのメソッドのバリエーションは次のようになります var len = document.querySelector("#input1").length;
Jacob Nelson

22

どちらの長さのプロパティも使用でき、lengthパフォーマンスが向上しsizeます。

$('#input1 option').length;

または、次のようなサイズ関数を使用できます

$('#input1 option').size(); 

デモ


2
これは、2009年からの回答も提供しなかったものを提供しません。
TylerH

18

あなたの質問は少し混乱しますが、パネルにオプションの数を表示したいと仮定します:

<div id="preview"></div>

そして

$(function() {
  $("#preview").text($("#input1 option").length + " items");
});

あなたの質問の残りを理解できているかわかりません。


14

複数選択オプションボックスでは、を使用$('#input1 :selected').length;して、選択したオプションの数を取得できます。これは、特定の最小数のオプションが満たされていない場合にボタンを無効にするのに役立ちます。

function refreshButtons () {
    if ($('#input :selected').length == 0)
    {
        $('#submit').attr ('disabled', 'disabled');
    }
    else
    {
        $('#submit').removeAttr ('disabled');
    }
}

$('#input1 :selected').length; ドキュメントapi.jquery.com/lengthを
Leonard Kakande

6

さて、私は中にいたので、いくつかの問題がありました

$('.my-dropdown').live('click', function(){  
});

ページ内に複数があるため、クラスを使用しました。

私のドロップダウンは、クリックするとajaxリクエストによって自動的に入力されたため、要素$(this)しかありませんでした

そう...

私がしなければなりませんでした:

$('.my-dropdown').live('click', function(){
  total_tems = $(this).find('option').length;
});

6

一番いい形はこれ

$('#example option').length

このコードのみの(価値の低い)ソリューションは、4年前にSadikhasanによって提供されました。の使用はlength9年前にKarim79によって投稿されました。この回答は完全に冗長であるため、ページから安全に削除できます。
mickmackusa

-1

便利な別のアプローチ。

$('#select-id').find('option').length

1
問題は、選択されたのみ の数を求めることではありません<option>
user4642212
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.