使用jquery .attr选择样式参数

时间:2012-07-05 16:35:35

标签: jquery attr

我有以下代码:

alert($("div", data).attr("style.background"));

我想在此代码中选择颜色值:

<div id = "test"style="font-family: serif; font-size: x-large; font-weight: bold; background: #5e5; text-align: center; margin: 0px; padding: 16px;">

我不确定要使用什么而不是style.background

任何帮助都会很棒,谢谢!

编辑:

更多代码

 success: function (data) {

                    alert(data);
                    alert($("div", data).css("background"));



                },

2 个答案:

答案 0 :(得分:4)

尝试使用css()代替attr()

 alert($("div", data).css("background"));

要获得唯一的颜色,您需要传递background-color而不是background。这也将与其他CSS属性一起使用。

答案 1 :(得分:1)

至于为什么你的jQuery选择器$('div',data)不起作用,那是因为data是一个字符串,而不是一个jQuery对象。要获得你想要的东西,你需要做:

 $(data).filter('div')

这将为您提供div字符串中包含的data

如果您想要的只是颜色,请尝试:

$(data).filter('div').css('backgroundColor')

但是,这将返回rgb(...)格式的颜色,因为jQuery会将所有颜色代码转换为rgb。

但是,如果您想要style属性中使用的实际值,则需要解析属性本身以找到答案:

var style = $(data).filter('div').attr('style');
var styleObj = {};
$.each(style.split(';'),function(){
    var rule = this.split(':');
    styleObj[$.trim(rule[0])] = $.trim(rule[1]);
});


alert(styleObj.background) // "#e55"

jsFiddle Demo

相关问题