我的DDL(下拉列表)包含10个元素(包括-- Select --
)。
1. 情景 - 1
当我使用以下$
选项 - $("#SelectId option");
时,它返回一个数组,其实际存在的元素数量是其中的两倍(另一半是重复的)。
2. 情景 - 2
使用$("#SelectId").find("option");
时,使用了确切数量的元素。
为什么会这样?
修改
正如@AlivetoDie所指出
我有这个隐藏的元素具有相同的ID。
$("#RoleId option")
涵盖整个文档。
$("#RoleId").find("option")
仅获得第一个选定元素的位置。
感谢@AlivetoDie指出它。
我很糟糕,我没有看到隐藏的元素。
根据@David Thomas的要求
<select data-cs-url="" data-optional-val="-- Select --" data-preselectedvalues="[-1]" data-unique="a0d4311ab42f47ef935543f8e3227a20" data-val="true" data-val-number="The field Role must be a number." data-val-required="Select Role!" id="RoleId" name="RoleId">
<option value="">-- Select --</option>
<option value="4">a - </option>
<option value="1">Admin - Administrator</option>
<option value="1004">Asp.Net Mvc Developer - Web Developer</option>
<option value="2">Data Entry - Operator</option>
<option value="3">Data Entry East - Operator For East Region</option>
<option value="1006">Data Entry2 - Operator</option>
<option value="1008">Test - Testing purpose</option>
<option value="1007">Tester - To test the application</option>
<option value="1005">Training - for training only</option>
</select>
答案 0 :(得分:1)
对我而言,它的工作正常(两种情况): -
console.log($("#RoleId option").get().length);
console.log($("#RoleId").find("option").get().length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select data-cs-url="" data-optional-val="-- Select --" data-preselectedvalues="[-1]" data-unique="a0d4311ab42f47ef935543f8e3227a20" data-val="true" data-val-number="The field Role must be a number." data-val-required="Select Role!" id="RoleId" name="RoleId">
<option value="">-- Select --</option>
<option value="4">a - </option>
<option value="1">Admin - Administrator</option>
<option value="1004">Asp.Net Mvc Developer - Web Developer</option>
<option value="2">Data Entry - Operator</option>
<option value="3">Data Entry East - Operator For East Region</option>
<option value="1006">Data Entry2 - Operator</option>
<option value="1008">Test - Testing purpose</option>
<option value="1007">Tester - To test the application</option>
<option value="1005">Training - for training only</option>
</select>
注意: -
结束时可能的错误原因: -
相同的选择框出现两次
选择框ID正在重复
一些jquery代码在后台静默添加更多选项。
您也可以直接使用length
: -
console.log($("#RoleId option").length);
console.log($("#RoleId").find("option").length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select data-cs-url="" data-optional-val="-- Select --" data-preselectedvalues="[-1]" data-unique="a0d4311ab42f47ef935543f8e3227a20" data-val="true" data-val-number="The field Role must be a number." data-val-required="Select Role!" id="RoleId" name="RoleId">
<option value="">-- Select --</option>
<option value="4">a - </option>
<option value="1">Admin - Administrator</option>
<option value="1004">Asp.Net Mvc Developer - Web Developer</option>
<option value="2">Data Entry - Operator</option>
<option value="3">Data Entry East - Operator For East Region</option>
<option value="1006">Data Entry2 - Operator</option>
<option value="1008">Test - Testing purpose</option>
<option value="1007">Tester - To test the application</option>
<option value="1005">Training - for training only</option>
</select>