Je souhaite sélectionner un groupe de span
dans un div
dont le CSS contient une couleur d'arrière-plan particulière. Comment puis-je y parvenir?Sélection d'éléments avec une certaine couleur d'arrière-plan
25
A
Répondre
41
si je comprends bien la question, le sélecteur [attribute=value]
ne fonctionnera pas parce que<span>
ne contient pas d'attribut « -couleur d'arrière-plan ». vous pouvez vérifier que rapidement pour le confirmer ne correspondra pas à quoi que ce soit:
$('#someDiv span[background-color]').size(); // returns 0
donné:
// css
.one, .two {
background-color: black;
}
.three {
background-color: red;
}
// html
<div id="someDiv">
<span class="one">test one</span>
<span class="two">test two</span>
<span class="three">test three</span>
</div>
est ici un extrait qui fonctionnera:
$('div#someDiv span').filter(function() {
var match = 'rgb(0, 0, 0)'; // match background-color: black
/*
true = keep this element in our wrapped set
false = remove this element from our wrapped set
*/
return ($(this).css('background-color') == match);
}).css('background-color', 'green'); // change background color of all black spans
-6
Utilisez l'attribut selector [attribut = valeur] pour rechercher une certaine valeur d'attribut.
#id_of_the_div span[background-color=rgb(255,255,255)]
+3
cela ne fonctionnera pas car background-color est une propriété css et non une propriété html – Alp
Comment feriez-vous la même chose pour un ID d'élément? Et si vous avez 5 des mêmes identifiants sur la même page, comment les apparieriez-vous, attribueriez-vous un arrière-plan et trouveriez-vous d'autres identifiants qui feraient la même chose? – Tom
@Tom C'est un peu difficile parce que vous ne devriez pas avoir 5 identifiants. Un identifiant devrait être unique sur cette page, et en avoir plus d'un ne fonctionnera pas bien avec javascript (je crois qu'il saisit juste le premier qu'il trouve). Êtes-vous capable de les convertir en cours? – Owen
Ça a marché pour moi. avec un changement mineur. Les codes de couleurs lorsque j'inspecte sont affichés en RGB mais lorsque le code est exécuté, #XXXXXX fonctionne. $ (Document) .ready (function()/* exécute le script après que DOM est prêt */{ \t \t $ ('# MyId tr «) .Chaque (function() { \t \t \t var yellowmatch = '#ffffcc'; var \t \t Redmatch = '# ffd7d7'; \t \t \t var greenmatch = '# e1ffe1'; \t \t \t si ($ (this) .css ('background-color') == redmatch) \t \t \t { \t \t \t} \t \t \t if ($ (this) Css ('background-color') == yellowmatch) \t \t \t { \t \t \t} \t \t \t if ($ (this) Css ('background-color') == greenmatch) \t \t \t { \t \t \t} \t \t}); }); – Sangeet