0

我有以下代码:

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"));



                },
4

2 回答 2

4

尝试使用css()而不是attr()

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

要仅获得颜色,您需要通过background-color而不是background. 这也适用于其他 CSS 属性。

于 2012-07-05T16:36:30.317 回答
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 演示

于 2012-07-05T16:38:40.090 回答