我不确定这是否可以通过jQuery或其他方法,但我已将主题切换器小部件合并到我的网络应用程序中。我有一组可选的UI元素,我想在页面加载/主题切换时将颜色与当前主题的ui-state-highlight颜色相同。我正在尝试将背景值存储在var中,因此我可以使用.css设置可选择的颜色以匹配。
input = $('.ui-state-highlight').css('background')
返回undefined,但如果我尝试使用
input = $('.ui-state-default').css('color')
我可以返回一个值。
我错过了什么?
答案 0 :(得分:1)
你的第一个例子在'ui-state-highlight'
之前没有句号,所以你试图选择具有ui-state-highlight类型的元素(而不是DIV,INPUT,SELECT等类型)
$('ui-state-highlight')
您的第二个示例实际上选择了具有“ui-state-default”类的元素
$('.ui-state-default')
编辑:基于您的更正,我猜这里的问题是您可能尝试使用ui-state-highlight类获取任何元素的背景颜色但是没有任何实际显示在您页面上的内容。
根据对Get a CSS value from external style sheet with Javascript/jQuery
的回答,尝试以下代码var $p = $("<p class='ui-state-highlight'></p>").hide().appendTo("body");
input = $p.css("background");
$p.remove();
您暂时创建一个新的<p></p>
,然后在删除它之前抓取它的背景颜色。