2012-05-10 42 views

回答

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

+0

在大多數的情況下,德,你甚至可以跳過.replace(「盒子」,「」)的一部分,parseInt函數會知道該怎麼做。 – demee

+0

我寫了它,以防萬一;) – antyrat

+3

只有當字符串以數字字符開頭,否則parseInt將導致NaN – devnull69

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

+0

我upvote這個答案,如果你添加一個基數parseInt;) – stewe

+0

@stewe謝謝,我**總是**忘記做那個大聲笑 –

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> 

請告訴我發生的事情是: 一)創建空數組 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))