我有一个包含选项的select标签,在某些时候,某些选项被禁用和隐藏。我想得到选项的大小或长度。
我试过
$("#input option :enabled").size();
并且:
x=$("#input option").length
y=$("#input option :disabled").length;
count = x-y;
任何人都可以请帮助
答案 0 :(得分:1)
使用此
$("#input option:not(:hidden):not(:disabled)").length
答案 1 :(得分:1)
使用简单的选择器无法做到这一点。
length = $("#input option:not(:disabled)").filter(function(){
return $(this).css('display') != 'none';
}).length;
console.log(length);
document.getElementById('result').innerHTML = length;

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<select id="input">
<option disabled="true">1</option>
<option disabled="true">2</option>
<option disabled="true">3</option>
<option style="display:none;">4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>0</option>
</select>
<div id="result"></div>
&#13;
答案 2 :(得分:1)
您可以使用jQuery .filter() 功能,并使用两个条件,首先检查未禁用的选项,然后检查这些选项是display=none
,请查看下面的示例
希望这有帮助。
var options_length = $("#input option").filter(function() {
return $(this).css("display") == "none" && $(this).not(':disabled')
}).length;
alert(options_length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="select" id='input'>
<option value="value1">Valeur 1</option>
<option value="value2" selected>Valeur 2</option>
<option value="value3" style='display:none'>Valeur 3</option>
<option value="value4" disabled>Valeur 4</option>
<option value="value5" disabled>Valeur 5</option>
<option value="value6">Valeur 6</option>
<option value="value7" style='display:none'>Valeur 7</option>
</select>