问题:确定多个选择列表是否具有相同selectedIndex
的最简单/最有效的方法是什么?
背景资料:
我在页面上有几个(最多200个)选择列表 - 所有列表都是tariff
,我需要检查它们是否都具有相同的selectedIndex
我的第一种方法是循环使用每个并记录前一个值 - 确保每个选择匹配 - 但它似乎效率低......例如
var tariffSelected;
var first = true;
$('.tariff').each(function() {
if (first) {
// store first value
tariffSelected = $(this).prop('selectedIndex');
first = false;
}
if (tariffSelected !== $(this).prop('selectedIndex')) {
// they don't match
}
});
答案 0 :(得分:2)
我只会检查选择的数量是否与selectedIndex匹配第一个选择的选择数相同,例如:
var allTariffs = $('.tariff');
var indexToMatch = allTariffs.eq(0).prop('selectedIndex');
var matchingTariffs = allTariffs.filter(function () {
return $(this).prop('selectedIndex') === indexToMatch;
});
var allMatch = allTariffs.length === matchingTariffs.length;
答案 1 :(得分:1)
这是一个工作示例
var s = $("select.tariff");
var firstVal = $("select").first().prop("selectedIndex");
var ss = $('select').filter(function() {
return this.selectedIndex === firstVal;
}).length === s.length;