Подсчет количества тегов параметров в теге выбора в jQuery

Как подсчитать количество <option> в элементе DOM <select> с помощью jQuery?

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

Я хочу найти количество тегов <option> в элементе DOM <select>, поскольку при этом я хочу открыть панель настроек с таким количеством полей ввода с соответствующим значением параметра из раскрывающегося списка в и снова изменить его на панели предварительного просмотра.

Выше раскрывающийся список находится в моей панели предварительного просмотра, которая генерируется jQuery.

Ответ 1

$('#input1 option').length;

Это создаст 2.

Ответ 2

Решение W3C:

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

Ответ 3

Вы можете использовать свойство length, а length - лучшее исполнение, затем size.

$('#input1 option').length;

ИЛИ вы можете использовать size функцию, например

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

Демо

Ответ 4

Ваш вопрос немного запутан, но если вы хотите отобразить количество опций в панели:

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

и

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

Не уверен, что я понимаю остальную часть вашего вопроса.

Ответ 5

В поле выбора с несколькими выборами вы можете использовать $('#input1 :selected').length; для получения количества выбранных параметров. Это может быть полезно отключить кнопки, если определенное минимальное количество параметров не выполнено.

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

Ответ 6

Хорошо, у меня было несколько проблем, потому что я был внутри

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

У меня были множественные числа на моей странице, поэтому я использовал класс.

Мой снимок был заполнен автоматически с помощью запроса ajax, когда я щелкнул его, поэтому у меня был только элемент $(this)

так...

Мне пришлось делать:

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

Ответ 7

Лучшая форма это

$('#example option').length

Ответ 8

Другой подход, который может быть полезен.

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