0
我有一些类型的选项列表,如汽车,像这样的格式的总线:<option value="BUS" label="Bus">Bus</option>
,当我想计算列表的长度时,我在Chrome中使用angular.element(element[0].options).length
它返回正确的长度,但在Internet Explorer上它返回1AngularJS选项长度IE
我有一些类型的选项列表,如汽车,像这样的格式的总线:<option value="BUS" label="Bus">Bus</option>
,当我想计算列表的长度时,我在Chrome中使用angular.element(element[0].options).length
它返回正确的长度,但在Internet Explorer上它返回1AngularJS选项长度IE
直接使用element[0].options.length
,而不是将其包装在angular.element()
中。如果你的列表是数据驱动的(我推荐),那么你也可以检查包含数据的数组的长度。
var list = document.getElementById('list');
console.log('list.options.length = ' + list.options.length);
<select id="list">
<option>A</option>
<option>B</option>
<option>C</option>
</select>
关于驱动列表中的数据,理想情况下,你应该有车辆的数组/运输/任何(可能与性或只是唯一的字符串复杂的对象)。一旦将该阵列展示给视图(通过范围或从controllerAs
语法的this
),然后您可以使用ngOptions
生成选项列表。例如:
控制器JS:
$scope.items = [{
id: 1,
label: 'aLabel',
subItem: { name: 'aSubItem' }
}, {
id: 2,
label: 'bLabel',
subItem: { name: 'bSubItem' }
}];
HTML模板:
<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>
什么是'元素[0] .options.length'返回? – JimmyBoh
它返回正确的数量27,但是当我使用angular.element(element [0] .options).length时,它返回1.当使用angular.element(element [0] .options)时,Firefox也返回正确的数量.length它似乎只是复制IE和Edge – Donatas
如果您发现我的答案有帮助,请将其标记为已接受。同样,如果你想出了一个不同的修复方法,那么也要发布它,这样其他人可能会受益。 – JimmyBoh