2014-01-12 67 views
1

我想改變使用Backbone和jQuery的兩個元素子元素的CSS。我的代碼不起作用。我認爲問題在於DOM元素和jQuery對象之間存在差異。無法更改jquery對象css

這裏是我的代碼:

App.Views.ExploreCard.user = App.Views.ExploreCard.Parent.extend({ 
    name: 'user', 
    allowUntyped: true, 
    classes: 'explore-person-box shadowed', 
    onclick: function() { 
    window.location.assign(this.data.profilePath); 
    }, 
    postRender: function() { 
    App.HCS.redrawHCS(this.$el); 
    } 
}); 

App.HCS = { 
    redrawHCS: function(elements) { 
    elements.each(function(index, value) { 
     console.log(value); 
     var hcs = $(value).find('.score'); 
     var border = $(value).find('.user-card-avatar-round'); 
     var score = $(hcs).html(); 
     console.log(hcs); 
     console.log(border); 
     console.log(score); 
     if (score <= 33 && score >= 1) { 
     $(hcs).css("background-image", "image-url('heart_primary.png')"); 
     $(border).css("border", "3px solid #ff4013;"); 
     } 
     else if (score <= 66 && score >= 34) { 
     $(hcs).css("background-image", "image-url('body_primary.png')"); 
     $(border).css("border", "3px solid #008cb4;"); 
     } 
     else if (score <= 99 && score >= 67) { 
     $(hcs).css("background-image", "image-url('minf_primary.png')"); 
     $(border).css("border", "3px solid #fb9f00;"); 
     } 
    }); 
    } 
}; 

我不想做任何事情非常困難。只需改變一些CSS規則。

我錯過了什麼?

+0

是你的'.score'和'。用戶卡,化身round'的div,輸入還是什麼? –

+0

'if'顯示之前那三個'console.log()'語句是什麼? (另外,不是問題,但你可以說'hcs.css(...)'和'border.css(...)' - 不需要將變量包裝在'$()'中,因爲'hcs'和'border'已經是jQuery對象。) – nnnnnn

+0

'score'似乎是一個字符串,但是你將它與數字進行比較。也許你應該明確地轉換它? – propeller

回答

2

你有;在CSS的最終值

$(border).css("border", "3px solid #fb9f00"); 

也需要使用url()image-url()

$(hcs).css("background-image", "url('minf_primary.png')"); 

演示圖像:ProblemSolution

0

我想background-image財產的變化應該是:

$(hcs).css("background-image", "url('heart_primary.png')"); 

,而不是:

$(hcs).css("background-image", "image-url('heart_primary.png')");