2008-11-11 7 views

Antwort

41

, wenn ich die Frage richtig verstanden habe, die Wähler [attribute=value]wird nicht funktionieren, weil<span> kein Attribut „background-color“ enthalten. Sie können, dass es nicht alles akzeptiert wird schnell zu bestätigen testen:

$('#someDiv span[background-color]').size(); // returns 0 

gegeben:

// 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> 

hier ist ein Ausschnitt, dass arbeiten:

$('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

Wie würdest du dasselbe für eine Element-ID machen? Und wenn Sie 5 identische IDs auf derselben Seite haben, wie würden Sie sie abgleichen, einen Hintergrund zuweisen und dann andere passende IDs finden, die dasselbe tun würden? – Tom

+0

@Tom Das ist ein bisschen schwierig, denn Sie sollten keine 5 IDs haben. Eine ID sollte auf dieser Seite eindeutig sein, und mehr als eine wird nicht gut mit Javascript funktionieren (ich glaube, dass es nur die erste findet, die es findet). Können Sie sie in Klassen konvertieren? – Owen

+0

Es hat für mich funktioniert. mit einer kleinen Änderung. Die Farbcodes, wenn ich inspiziere, werden in RGB gezeigt, aber wenn der Code läuft, funktioniert #XXXXXX. $ (Document) .ready (function()/* Skript ausführen, nachdem DOM fertig ist */{ \t \t $ ('# MyId tr ‚) .each (function() { \t \t \t var yellowmatch = '#ffffcc'; \t \t var Redmatch = '# ffd7d7'; \t \t \t var greenmatch = '# e1ffe1'; \t \t \t if ($ (this) .css ('Hintergrundfarbe') == 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 ('Hintergrundfarbe') == greenmatch) \t \t \t { \t \t \t } \t \t}); }); – Sangeet

-6

Verwenden Sie das Attributselektor [Attribut = Wert], um nach einem bestimmten Attributwert zu suchen.

#id_of_the_div span[background-color=rgb(255,255,255)] 
+3

das wird nicht funktionieren weil background-color eine css-property und keine html-property ist – Alp