13

有没有办法在选择下拉 HTML 输入标记中获取列表选项的长度?列表动态变化,我需要计算下拉列表中的选项总数。总选项是动态生成的,所以我需要一种方法来计算 html 选择标签中的选项标签数量。我还需要在纯 JS 中执行此操作,因为我正在使用的应用程序不允许我使用 JQuery。(请不要与我争论,除非在纯 JS 中绝对没有办法做到这一点。)

只需与 Internet Explorer 兼容。

我认为这与访问 DOM 有关,但我不确定语法将如何发挥作用。

4

5 回答 5

37

由于您没有指定可以使用 jQuery,请尝试以下操作:

HTML:

<select id="test">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
</select>​

JavaScript:

​document.getElementById("test").options.length

例子

于 2012-10-31T19:36:49.553 回答
4

从选择输入中选择选项,然后用长度计算它们

$("#input1 option").length
于 2012-10-31T19:36:07.947 回答
1

我使用 JQuery 做到了这一点

$(document).ready(function() {
    $("button").click(function(){
      var optionLength = $("#user option").length;
      
           alert("length of options is : "+optionLength);
    });
});
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Get length of list Options</title>
</head>
  <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>

<body>
<select id="user" multiple="" size="5" class="form-control" id="participants" name="participants" style="height: 98px !important;">
  <option value="1">S RAJ</option>
  <option value="2"> SHARMA</option>
  <option value="3">SINGH</option>
  <option value="4"> ROY</option>
  <option value="5">VERMA</option>
  <select>
    <button type="button">Get Users</button>
</body>
</html>

于 2020-07-30T09:40:19.807 回答
0
<select id="lister-sort-by-options" name="sort" class="lister-sort-by">
    <option value="0" selected="selected">
      Movies
    </option>
    <option value="1">
      TV Shows
    </option>
    <option value="2">
      Morning Shows
    </option>
    <option value="3">
      Moonlight
    </option>
    <option value="4">
      Music
    </option>
</select>
于 2020-05-11T10:08:48.480 回答
0

试试这个

在 HTML 文件中:

<select id="mySelect">
  <option>Apple</option>
  <option>Pear</option>
  <option>Banana</option>
  <option>Orange</option>
</select>

在 JavaScript 文件中:

document.getElementById("mySelect").length;
于 2021-09-22T11:17:42.983 回答