Como verifico quantas opções existem em um menu suspenso?

110

Como faço para verificar, usando jQuery, quantas opções existem em um menu suspenso?

Obrigado.

Asim Zaidi
fonte

Respostas:

201
var length = $('#mySelectList').children('option').length;

ou

var length = $('#mySelectList > option').length;

Isso pressupõe que sua <select>lista tenha um ID de mySelectList.

user113716
fonte
.children('option').length;era a única maneira de obter a opção real count / select.length depois de preencher minha lista de seleção dinamicamente por meio de ajax no .done ({}); usando .append (). Muito bem!
yardpenalty.com
para o comprimento das opções selecionadas está correto "$ ('. opção de seleção de pesquisa: selecionado'). comprimento"
Youssef Boudaya
10
$("#mydropdown option").length

Ou se você já tem uma referência a ele,

$(myDropdown).find("option").length
Matti Virkkunen
fonte
8

Use a propriedade length ou o método size para descobrir quantos itens estão em uma coleção jQuery. Use o seletor descendente para selecionar todos <option>os dentro de a <select>.

HTML:

<select id="myDropDown">
<option>1</option>
<option>2</option>
.
.
.
</select>

JQuery:

var numberOfOptions = $('select#myDropDown option').length

E uma observação rápida: geralmente você precisará fazer algo no jquery para uma coisa muito específica, mas primeiro você precisa ver se a coisa muito específica existe. A propriedade de comprimento é a ferramenta perfeita. exemplo:

   if($('#myDropDown option').length > 0{
      //do your stuff..
    } 

Isso 'se traduz' em "Se o item com ID = myDropDown tiver qualquer 'opção' descendente, faça o que você precisa fazer.

Adão
fonte
4
$('#idofdropdown option').length;

Isso deve resolver.

Rob Stevenson-Leggett
fonte
4

Obtenha o número de opções em um elemento selecionado específico

$("#elementid option").length
Sharjeel Aziz
fonte
Não há nenhuma vantagem em usar ".size" sobre ".length", que é um pouco mais rápido.
Russ Bradberry
3
alert($('#select_id option').length);
fantactuka
fonte
3
$('#dropdown_id').find('option').length
segundo
fonte
3
$('select option').length;

ou

$("select option").size()
Nicholasklick
fonte
.size()é útil se você deseja encadear
adardesign
.size () retorna um inteiro e, portanto, não pode ser encadeado. Você só pode encadear métodos que retornam objetos jQuery.
Russ Bradberry
0

Com javascript puro, você pode simplesmente chamar o comprimento no id da caixa de seleção. Vai ser mais rápido. Normalmente, com tudo que o javascript nativo tem um desempenho cada vez melhor com os navegadores modernos

Isso pode ser feito em javascript por

     var dropdownFilterSite = document.querySelector( '#dropDownId' );  //Similar to jQuery

var length = dropdownFilterSite.length.

Bom site para aprender

www.youmightnotneedjquery.com

Um bom vídeo para assistir por Todd Motto

https://www.youtube.com/watch?v=pLISnANteJY

Vatsal
fonte