2

私のクライアントは、すべてのリンクを最も幅の広いリンクと同じ幅に設定する、jQueryが推奨するコードの断片を記述したいと考えています。HTMLは次のとおりです。

<div>
<h1>HEADER</h1>
<p style="text-align: right;" class="floatRight"><a href="#" class="small-button eLength"><span>BUTTON 1</span></a></p>
<p style="text-align: right;" class="floatRight"><a href="#" class="small-button eLength"><span>BUTTON 2</span></a></p>
<p style="text-align: right;" class="floatRight"><a href="#" class="small-button eLength"><span>BUTTON LONGEST</span></a></p>
</div>

CSSは、3つのボタンすべてを最小幅180pxに設定します。私はこれをすべてクラスに依存するように探しています:eLength

4

2 に答える 2

10

次のように最大幅を取得できます。

var widest = Math.max.apply(Math, $('.eLength').map(function() { 
    return $(this).width(); 
}));

そして、これをスライバープラグインでラップするには:

$.fn.widest = function() {
    return this.length ? this.width(Math.max.apply(Math, this.map(function() { 
        return $(this).width();
    }))) : this;
};

$('.eLength').widest();
于 2012-11-07T17:25:30.307 に答える
1

John Resig のFast JavaScript Max/Minの使用:

Array.max = function(array) {
    return Math.max.apply(Math, array);
};

var widths = new Array();
$('.eLength').each(function(index) {
    widths.push($(this).width());
});

alert("Max Width: " + Array.max(widths));
于 2012-11-07T17:28:31.027 に答える