使用jQuery在下拉列表中查找最大值?

时间:2010-04-22 15:41:37

标签: jquery

我有一个带数值的下拉列表:

<select name="a">
   <option value="1">asdsadas</option>
   <option value="1">wqecsdc</option>
   <option value="10">nmnmbn</option>
   <option value="16">assadsa</option>
   <option value="12">uuyuyuy</option>
   <option value="60">xzXz</option>
   <option value="55">vbbnbnm</option>
   <option value="13">eerrt</option>
</select>

我需要在此列表中找到最高数值。 (在这种情况下,它是60。)

我在考虑使用.each进行循环,但是有更短的方法吗?

5 个答案:

答案 0 :(得分:15)

这对我很好,很直接:

$('select option:last').val()

编辑:误解了这个问题,但可能对其他人有用,在大多数情况下,你可以在select元素中选择desc或asc。

答案 1 :(得分:9)

这样的事情应该有效:

function findMaxValue(element) {
    var maxValue = undefined;
    $('option', element).each(function() {
        var val = $(this).attr('value');
        val = parseInt(val, 10);
        if (maxValue === undefined || maxValue < val) {
            maxValue = val;
        }
    });
    return maxValue;
}

alert(findMaxValue($('select[name=a]')));

答案 2 :(得分:0)

这可行.. !!

var temp=0;

var currentValue, maxValue;

$('select option').each(function(){

currentValue = $(this).val();

maxValue = Math.max(temp, currentValue);

temp=currentValue;

});

console.log(maxValue);

答案 3 :(得分:0)

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="aktivite_type" id="aktivite_type">
  <option value="1">A</option>
  <option value="6">B</option>
  <option value="10">C</option>
  <option value="11">D</option>
  <option value="8">E</option>
  <option value="9">F</option>
  <option value="7">F</option>
</select>

<button onclick="JSF__selectLastTypeValue()">Select Value</button>

<script>

function JSF__selectLastTypeValue()
    {
    var temp=0;
    var currentValue, maxValue;
    $('#aktivite_type option').each(function(i,v)
        {
        currentValue = v.value;
        maxValue = Math.max(temp, currentValue);
        temp=maxValue;
        });
    $("#aktivite_type").val(maxValue);
    }
    
   </script>
&#13;
&#13;
&#13;

答案 4 :(得分:-1)

var maxValue = undefined;
$('option', element).each(function() {
  var val = $(this).val();
  val = parseInt(val, 10);
  if(!isNaN(val)) {
    if (maxValue === undefined || maxValue < val) {
      maxValue = val;
    }
  }
});
return maxValue;