<div class="box1">
<div class="box9">
<div class="box4">
「ボックス」で始まるクラスから最大数を取得するにはどうすればよいですか?この場合、9番を取得する必要があります。
<div class="box1">
<div class="box9">
<div class="box4">
「ボックス」で始まるクラスから最大数を取得するにはどうすればよいですか?この場合、9番を取得する必要があります。
すべての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で
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))
ひや別のデモ 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>
<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))