jQuery:从课程中获取最多的数字

时间:2012-05-10 10:03:31

标签: javascript jquery search

<div class="box1">
<div class="box9">
<div class="box4">

如何从“盒子”开头的课程中获得最大数字? 在这种情况下,我必须得到9号。

4 个答案:

答案 0 :(得分:3)

你需要迭代所有div的元素并获取类名。然后你需要存储最大的值。我为你写了一个简单的例子:

HTML:

<div class="box1"></div>
<div class="box9"></div>
<div class="box4"></div>​

jQuery的:

var biggestNum = 0;
$('div[class^="box"]').each(function(){
    var currentNum = parseInt($(this).attr('class').replace('box', ''), 10);
    if(currentNum > biggestNum) {
        biggestNum = currentNum;
    }
})​;

alert(biggestNum);

jsFiddle

答案 1 :(得分:1)

以下是使用jQuerys map()函数和Math.max的较短实现:

var nums = $("div").map(function(i, e) {
    return parseInt($(e).attr("class").replace("box",""), 10);
}).get();
alert(Math.max.apply(this, nums))

Example fiddle

答案 2 :(得分:0)

Hiya另一个演示 http://jsfiddle.net/26GYN/1/ http://jsfiddle.net/ktwDK/2/

表示编号最大的班级;用红色框突出显示。休息演示将清楚说明:)

Jquery代码

var max=0
var maxClass="";
$("div[class^='box']").filter(function(){
    var result = /\d+(?:\.\d+)?/.exec($(this).attr("class").toString());
    if (max < result)
        max = result;

    maxClass = 'box'+max;

}).each(function() {

//dosomething!!          
});
$("div[class^="+maxClass+"]").css('border', '1px red solid');
​

<强> HTML

<div class="box1">foobar</div>
<div class="box9">testsoo</div>
<div class="box4">hulkfoo</div>​

答案 3 :(得分:0)

<script>
var classes = new Array();
$('div[class*="box"]').each(
    function(index, value) {
        classes.push(parseInt($(value).attr('class').replace("box",""), 10))
    });

alert(classes.sort().pop());
</script>

发生的事情是: a)创建空数组 b)选择所有具有类框[某事]

的div
 $('div[class*="box"]')

c)从类名中获取数字并将其转换为整数

 $('div[class*="box"]')

d)把它放在数组

classes.push(parseInt($(value).attr('class').replace("box",""), 10))

e)排序数组并弹出最后一个元素(最大的一个)以获得最大值

classes.push(parseInt($(value).attr('class').replace("box",""), 10))