Frage

Ein .container kann viele .components enthalten, und .components selbst können .container enthalten (die wiederum .components usw. enthalten können).usw.)

Gegebener Code wie dieser:

$(".container .component").each(function(){
  $(".container", this).css('border', '1px solid #f00');
});

Was muss ich der Zeile innerhalb der geschweiften Klammern hinzufügen, um nur die verschachtelten .container auszuwählen, deren Breite in CSS auf „auto“ eingestellt ist?Ich bin mir sicher, dass es etwas Einfaches ist, aber ich habe jQuery nicht wirklich oft verwendet.

War es hilfreich?

Lösung

$(".container .component").each(function()
{
    $(".container", this).each(function() {
        if($(this).css('width') == 'auto')
        {
            $(this).css('border', '1px solid #f00');
        }
    });
});

Ähnlich wie bei der anderen Antwort, aber da Komponenten auch mehrere Container haben können, muss hier auch .each() für die Breite eingecheckt werden.

Andere Tipps

Vielleicht möchten Sie einen Blick darauf werfen .filter().

Etwas wie:

$('.container .component .container')
.filter(function() {return $(this).css('width') == 'auto';})
.css({border: '1px solid #f00'});
$(".container .component").each(function() {
    if ($(".container", this).css('width') === "auto")
        $(".container", this).css('border', '1px solid #f00');
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top