检查SelectedIndex匹配多个选择

时间:2013-12-03 18:47:12

标签: jquery

问题:确定多个选择列表是否具有相同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
   }
});

2 个答案:

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

这是一个工作示例

http://jsfiddle.net/q89Tf/

var s = $("select.tariff");
var firstVal = $("select").first().prop("selectedIndex");
var ss = $('select').filter(function() {
    return this.selectedIndex === firstVal;
}).length === s.length;