Ich habe die Hintergrundfarbe einer Klasse mit css festgelegt, jetzt möchte ich sie mit jquery in eine Variable setzen. Danke
Antworten
Zu viele Anzeigen?Möglicherweise müssen Sie diese Klasse auf ein temporäres Element anwenden und dann die Farbe bgcolor dieses Elements extrahieren.
.cm { background-color:#990000 }
--
// creating an empty element and applying our class to it
var bgcolor = $("<div>").appendTo("body").addClass("cm").css("background-color");
alert(bgcolor); // rgb(153, 0, 0)
Wenn es auf der Seite ein Element gibt, das diese Klasse verwendet, können Sie etwas wie folgt tun:
var backgroundColor = $('.classname').css('background-color');
Aber wenn nichts ist mit der Klasse, ich bin nicht vertraut mit einem Weg, um die Farbe außer dem Laden der .css-Datei und Parsing es in JavaScript (weniger als ideal) zu greifen.
Das Problem ist, dass Jquery das eigentliche Stylesheet nicht durchlaufen kann (soweit ich weiß). Wenn Sie also ein Element mit zwei Klassen haben, können Sie nicht wissen, ob die zurückgegebene Farbe für die gewünschte Klasse oder die andere Klasse bestimmt ist. Zum Beispiel:
.big { Hintergrundfarbe: gelb; }
.mean { Hintergrundfarbe: blau; }
Die erste wäre blau, aber wenn Sie die Hintergrundfarbe mit anfordern:
$(".big").css("background-color");
Sie würden blau erhalten, obwohl diese Klasse auf gelb eingestellt ist, da das erste Element technisch gesehen der Klasse big angehört, aber einen blauen Hintergrund hat.
Mir gefällt die Idee von Jonathan Sampson. Erstellen Sie ein Element, machen Sie es unsichtbar oder aus dem Bildschirm, aber geben Sie ihm eine ID und die Klasse, über die Sie sich wundern. Überprüfen Sie dann die Hintergrundfarbe dieser ID, anstatt nach Klasse zu suchen:
$("#colortest").css("background-color");