Подсчет количества опций тега в элементе Select Dom в JQuery - PullRequest
151 голосов
/ 20 июля 2009

Как подсчитать количество опций в выбранном элементе DOM с помощью jQuery?

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

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

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

Ответы [ 8 ]

243 голосов
/ 20 июля 2009
$('#input1 option').size(); 

Это даст 2.

Вот рабочая Скрипка

50 голосов
/ 20 июля 2009

Решение W3C:

var len = document.getElementById("input1").length;
22 голосов
/ 28 октября 2014

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

$('#input1 option').length;

ИЛИ вы можете использовать размер , например,

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

Демо

18 голосов
/ 20 июля 2009

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

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

и

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

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

13 голосов
/ 10 апреля 2012

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

function refreshButtons () {
    if ($('#input :selected').length == 0)
    {
        $('#submit').attr ('disabled', 'disabled');
    }
    else
    {
        $('#submit').removeAttr ('disabled');
    }
}
6 голосов
/ 14 февраля 2012

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

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

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

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

так ...

Я должен был сделать:

$('.my-dropdown').live('click', function(){
  total_tems = $(this).find('option').length;
});
5 голосов
/ 19 февраля 2018

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

$('#example option').length
0 голосов
/ 15 марта 2018

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

$('#select-id').find('option:selected').length
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...