jQuery:Puoi selezionare in base alla regola CSS, non alla classe?
-
09-06-2019 - |
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.
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