Domanda

Un .container può contenere molti .components e i .components stessi possono contenere .containers (che a loro volta possono contenere .components ecc.eccetera.)

Dato il codice in questo modo:

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

Cosa devo aggiungere alla riga tra parentesi graffe per selezionare solo i contenitori annidati la cui larghezza nei CSS è impostata su "auto"?Sono sicuro che sia qualcosa di semplice, ma non ho usato molto jQuery.

È stato utile?

Soluzione

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

Simile all'altra risposta ma poiché i componenti possono avere anche più contenitori, è necessario anche il controllo .each() anche qui per la larghezza.

Altri suggerimenti

Potresti voler esaminare .filter().

Qualcosa di simile a:

$('.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');
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top