2010-04-22 45 views
5

我有数值的下拉列表:使用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循环,但有没有更简单的方法?

+0

这是什么样的事情,Underscore.js是良好的。我认为用Underscore它会像'_($('#theSelect option')。get())。chain()。pluck('value')。max()。value()' – Pointy 2010-04-22 15:47:59

+0

@pointy你解释一下在做什么,为什么你不把它作为答案? – mcgrailm 2010-04-22 15:54:39

+0

查看Underscore(http://documentcloud.github.com/underscore/) - 它是一个提供一些函数式编程实用程序的库。我没有发布答案,因为我不认为“使用这个其他图书馆”实际上是直接有用的。该代码示例准备了一个Underscore包装器,然后从元素中将“value”属性抽取到数组中,然后找到最大值。 – Pointy 2010-04-22 16:17:27

回答

7

像这样的东西应该工作:

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]'))); 
-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; 
+0

[JSFiddle例子](http://jsfiddle.net/tbuKU/) – user2428118 2012-09-27 11:58:14

14

这工作对我很好,很直接:

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

编辑:误解了这个问题,但可能成为方便他人,在大多数情况下,您在select元素中定义了desc或asc选项。

0

这将工作..!

var temp=0; 

var currentValue, maxValue; 

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

currentValue = $(this).val(); 

maxValue = Math.max(temp, currentValue); 

temp=currentValue; 

}); 

console.log(maxValue); 
0

<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>

+3

请不要只是发布代码!为未来读者的利益添加一个解释。 – 2018-02-12 15:04:15

相关问题