javascript - Numărarea numărului de etichete option dintr-o etichetă select în jQuery


Cum pot să număr numărul de <option>-uri dintr-un element DOM <select> folosind jQuery?

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

Vreau să găsesc numărul de etichete <option> din elementul DOM <select>, deoarece cu asta vreau să deschid panoul de setări cu acel număr de câmpuri de introducere cu valoarea corespunzătoare a opțiunii din lista derulantă în el și să o schimb din nou în panoul de previzualizare.

Caseta derulantă de mai sus se află în panoul meu de previzualizare, care este generat de jQuery.

Răspuns #1

$('#input1 option').length;

Acesta va produce 2.

Răspunsul #2

Soluția W3C:

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

Răspunsul #3

Puteți folosi fie proprietatea length, iar length are performanțe mai bune decât size.

$('#input1 option').length;

SAU poți folosi funcția size ca (eliminată în jQuery v3)

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

$(document).ready(function(){
   console.log($('#input1 option').size());
   console.log($('#input1 option').length);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select data-attr="dropdown" id="input1">
   <option value="Male" id="Male">Male</option>
   <option value="Female" id="Female">Female</option>
</select>

Răspunsul #4

Întrebarea ta este puțin confuză, dar presupunând că vrei să afișezi numărul de opțiuni într-un panou:

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

și

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

Nu sunt sigur că înțeleg restul întrebării tale.

Răspunsul #5

Într-o casetă de opțiuni cu selecție multiplă, poți folosi $ ('#input1 :selected').length; pentru a obține numărul de opțiuni selectate. Acest lucru poate fi util pentru a dezactiva butoanele dacă nu este atins un anumit număr minim de opțiuni.

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