显示<select multiple =“”>中所选项目的计数

时间:2018-03-04 21:28:59

标签: javascript select count

尝试了这个q的所有答案,但只是无法显示计数(或者可能运行的js?) 这是我的代码..我希望每次选择另一个时,所选项目的当前计数都会更新 任何建议赞赏..每天学习 &LT; HTML&GT; &LT; HEAD&GT; &lt; script type =“text / Javascript”&gt; function count_cars(){  var options = document.getElementById(“cars”)。options,count = 0;  for(var i = 0; i&lt; options.length; i ++){  if(options [i] .selected)count ++; } // for循环结束 //现在将当前计数放在id ='car_count'的元素中 document.getElementById(“car_count”)。innerHTML = count; } //函数结束 &LT; /脚本&GT; &LT; /头&GT; &LT;身体GT; &lt; form name =“test1”method =“GET”action =“test2.html”&gt; 你有多少辆车? &LT;表&gt; &LT; TR&GT;&LT; TD&GT; &lt; select multiple name =“cars []”value =“”onchange =“count_cars”&gt;   &lt; option value =“ford”&gt; Ford&lt; / option&gt;   &lt; option value =“saab”&gt; Saab&lt; / option&gt;   &lt; option value =“merc”&gt; Merc&lt; / option&gt;   &lt; option value =“audi”&gt; Audi&lt; / option&gt; &LT; /选择&GT; &lt; / td&gt;&lt; td&gt;总计:&lt; div id =“car_count”&gt;&lt; / div&gt;&lt; / td&gt;&lt; / tr&gt; &lt; tr&gt;&lt; td&gt;&lt; input type =“submit”&gt;&lt; / td&gt;&lt; / tr&gt; &LT; /表&gt; &LT; /形式&GT; &LT; /体&GT; &LT; / HTML&GT;

3 个答案:

答案 0 :(得分:3)

您尝试按ID访问选择列表选项 - 但是选择没有ID。此外 - 最好以更易读的方式缩进代码。

function count_cars() {
 var options = document.getElementById("cars").options, count = 0 ;
 for (var i=0; i < options.length; i++) {
   if (options[i].selected) count++; 
  } // end of for loop
 document.getElementById("car_count").innerHTML = count ;
} // end of function
<form name="test1" method="GET" action="test2.html">
How many cars have you got?
  <table>
    <tr>
      <td>
        <select multiple id="cars" name="cars[]" value="" onchange="count_cars()">
          <option value="ford" >Ford </option>
          <option value="saab" >Saab </option>
          <option value="merc" >Merc </option>
          <option value="audi" >Audi </option>
        </select>
      </td>
      <td>
        Total : <div id="car_count"></div>
      </td>
    </tr>
    <tr>
      <td>
        <input type="submit">
      </td>
    </tr>
  </table>
</form>

答案 1 :(得分:1)

您可以使用过滤功能。

const options =  document.getElementById("cars").options;
const count = [...options].filter(option => option.selected).length;

不要忘记将cars ID设置为您的选择。

答案 2 :(得分:0)

您可以使用selectedOptions。

它包含当前所选元素中包含的元素列表。

这是一个HTMLCollection对象,每个当前选择的选项都有一个条目

...[ngStyle]="{ 'transform': 'rotate('+numberArray[i]+'deg) translate(0,-100px) rotate('+numberArray[i]+'deg)' } ...

并使用

显示
var count = document.getElementById("cars").selectedOptions.length;