2 Stimmen

Wählen Sie div mit bestimmter Breite

Schnelle Frage: Wie kann man ein div mit einer bestimmten Breite auswählen? Zum Beispiel haben wir 10 divs auf einer Seite, und ich möchte das auswählen, das eine Breite von 200px hat und etwas damit machen. Vielen Dank.

6voto

Pointy Punkte 387467

Was JCOC611 gesagt hat:

var $theDivs = $('div').filter(function() { return $(this).width() === 200; });

Das würde Ihnen ein jQuery-Objekt mit allen übereinstimmenden (200px) DIVs darin bringen. Es wäre vielleicht nicht das schnellste Ding der Welt; es wäre wahrscheinlich besser, Ihre Seitenelemente direkter und expliziter zu identifizieren, wenn Sie können.

0voto

Tom Auger Punkte 19076

Sie können auch die Pseudo-Selektoren von jQuery erweitern, wie folgt:

// Erweitern des jQuery ":"-Pseudo-Selektors um einen width() Test

$.extend( $.expr[':'], {
    width: function ( element, index, selectorMatches ) {
        var expr = selectorMatches[3].match( /^\s*([<>]?={0,1})?\s*(\d+)\s*$/ ),
            elementWidth = $( element ).width(),
            targetWidth, comparisonOperator;

        if ( !expr ){
            console.log( "Ungültiger Ausdruck" );
            return false;
        }

        comparisonOperator = expr[1] || "==";
        targetWidth = parseInt( expr[2] );

        return eval( elementWidth + comparisonOperator + targetWidth );
    }
});

// Gültige Ausdrücke sind:
// :width( 200 ), :width( = 200 ), :width( == 200 )
// :width( > 200 ), :width( >= 200 )
// :width( < 200 ), :width( <= 200 )
$('div:width( 200 )').hide();

Meiner Meinung nach macht das mehr Spaß als filter() zu verwenden, aber jsperf zeigt, dass es nur ein wenig langsamer ist (4% langsamer).

Hier ist ein jsFiddle, mit dem Sie herumspielen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X