2008-11-11 4 views

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 
+0

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

+0

@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

+0

Ç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

-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

Questions connexes