<div class="box1">
<div class="box9">
<div class="box4">
如何從類「box」開始的類中獲得最大數字? 在這種情況下,我必須得到數字9.jQuery:從類中獲取最大數字
<div class="box1">
<div class="box9">
<div class="box4">
如何從類「box」開始的類中獲得最大數字? 在這種情況下,我必須得到數字9.jQuery:從類中獲取最大數字
您需要遍歷真實所有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);
你好另一演示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>
下面是使用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))
我upvote這個答案,如果你添加一個基數parseInt;) – stewe
@stewe謝謝,我**總是**忘記做那個大聲笑 –
<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))
在大多數的情況下,德,你甚至可以跳過.replace(「盒子」,「」)的一部分,parseInt函數會知道該怎麼做。 – demee
我寫了它,以防萬一;) – antyrat
只有當字符串以數字字符開頭,否則parseInt將導致NaN – devnull69