答案 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;