Question

Un .container peut contenir de nombreux .components, et les .components eux-mêmes peuvent contenir des .containers (qui à leur tour peuvent contenir des .components, etc.etc.)

Étant donné un code comme celui-ci :

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

Que dois-je ajouter à la ligne entre les accolades pour sélectionner uniquement les .containers imbriqués dont la largeur en CSS est définie sur « auto » ?Je suis sûr que c'est quelque chose de simple, mais je n'ai pas vraiment beaucoup utilisé jQuery.

Était-ce utile?

La solution

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

Semblable à l'autre réponse, mais comme les composants peuvent également avoir plusieurs conteneurs, ils nécessitent également l'enregistrement .each() ici également pour la largeur.

Autres conseils

Vous voudrez peut-être examiner .filter().

Quelque chose comme:

$('.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');
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top