2012-07-05 51 views
0

我有以下代碼:選擇風格參數使用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")); 



       }, 

回答

1

至於爲什麼你的jQuery選擇器$('div',data)不工作,這是因爲data是一個字符串,而不是一個jQuery對象。爲了得到你想要的,你需要做的:

$(data).filter('div') 

這將讓你包含data字符串中div

如果你想要的是顏色,試試:

$(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

+0

我已經更新了我的jsFiddle演示,以使用字符串作爲源代碼,就像您在代碼中所做的一樣 – jackwanders 2012-07-05 17:14:38

+0

這非常完美,非常感謝 – 2012-07-06 09:52:35

4

嘗試使用css(),而不是attr()

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

要獲得唯一的顏色,你需要通過background-color而不是background。這也將與其他CSS屬性一起工作。

+0

我仍然收到「未定義」在警報框中。 – 2012-07-05 16:39:49

+0

''background「'也會返回定位和重複值 – jackwanders 2012-07-05 16:41:00

+0

@JamesMclaren在你的例子中什麼是'data'?沒有它,一切正常,看看演示:http://jsfiddle.net/antyrat/LPhcK/ – antyrat 2012-07-05 16:41:52