如何使用jquery检查类的背景颜色?

时间:2010-01-28 21:55:19

标签: jquery css

我已经使用css设置了类的背景颜色,现在我想使用jquery将它放在一个变量中。感谢

4 个答案:

答案 0 :(得分:5)

您可能必须将该类应用于临时元素,然后提取该元素的bgcolor。

.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)

答案 1 :(得分:2)

如果页面上有一个使用该类的元素,您可以执行以下操作:

var backgroundColor = $('.classname').css('background-color');

但如果没有使用该类,我不熟悉从加载.css文件并在JavaScript中解析它(不太理想)时获取颜色的任何方法。

答案 2 :(得分:1)

问题是jquery无法遍历实际的样式表(据我所知),所以如果你有一个包含两个类的元素,你将无法知道它返回的颜色是否属于你的类想要或另一个。例如:

。大 {    背景颜色:黄色; }

.mean {    背景颜色:蓝色; }

第一个是蓝色,但如果您使用以下方式请求背景颜色:

 $(".big").css("background-color");

你会得到蓝色,即使该类设置为黄色,因为第一个元素在技术上属于类大但是它有蓝色背景。

我喜欢Jonathan Sampson的想法。创建一个元素,使其不可见或在屏幕外,但给它一个ID和你想知道的类。然后检查该ID的背景颜色,而不是按类检查:

 $("#colortest").css("background-color");

答案 3 :(得分:0)

var $tmp = $('<a class="classname"></a>');
$('body').append($tmp).hide();
var color = $('.classname').css('background-color');
$tmp.remove();

编辑:将类应用于隐藏元素。