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

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

4

4 回答 4

5

您需要遍历所有 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 上

于 2012-05-10T10:12:53.123 回答
1

这是使用 jQuerysmap()函数和的更短的实现Math.max

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

示例小提琴

于 2012-05-10T10:22:37.970 回答
0

嗨,另一个演示 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>​
于 2012-05-10T10:19:07.677 回答
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[something]

 $('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))
于 2012-05-10T10:37:11.230 回答