0

我不确定这是否可以通过 jQuery 或其他方法实现,但我已将主题切换器小部件合并到我的网络应用程序中。我有一组可选的 UI 元素,我想在页面加载/主题切换时将它们的颜色与当前主题的 ui-state-highlight 颜色相同。我正在尝试将背景的值存储在 var 中,因此我可以使用 .css 来设置可选颜色以匹配。

input = $('.ui-state-highlight').css('background')

返回未定义,但如果我尝试

input = $('.ui-state-default').css('color')

我可以返回一个值。

我错过了什么?

4

1 回答 1

1

您的第一个示例之前没有句点,'ui-state-highlight'因此您尝试选择类型为 ui-state-highlight 的元素(与 DIV、INPUT、SELECT 等类型相反)

 $('ui-state-highlight')

您的第二个示例实际上选择了具有“ui-state-default”类的元素

 $('.ui-state-default')

编辑:根据您的更正,我猜这里的问题是您可能正在尝试使用 ui-state-highlight 类获取任何元素的背景颜色,但您的页面上实际上并没有显示任何元素。

根据使用 Javascript/jQuery 从外部样式表获取 CSS 值的答案,尝试以下代码

var $p = $("<p class='ui-state-highlight'></p>").hide().appendTo("body"); 
input = $p.css("background"); 
$p.remove(); 

您临时创建一个新<p></p>的,然后在删除它之前从它身上获取背景颜色。

于 2012-05-18T00:28:30.200 回答