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

「ボックス」で始まるクラスから最大数を取得するにはどうすればよいですか?この場合、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を選択する

 $('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 に答える