2013-10-25 117 views
0

這裏是我的代碼:如何更改TD的背景圖像?

JS/jQuery的:

function RefreshImage(){ 
    var form_data = { 
     ID: $('#ID').val() 
    }; 

    $.ajax({ 
     type: "POST", 
     url: "submit/image.php", 
     data: form_data, 
     success: function(data) { 
      $('#IMG').css('backgroundImage', "url('images/+data+')"); 
     } 
    }); 
} 

HTML:

<table> 
    <tr> 
     <td background="images/default.jpg" id="IMG"></td> 
    </tr> 
</table> 
<input type="hidden" id="ID" value="4"> 

CSS:

#IMG{ 
    background-color:rgba(0,0,0,0.5); 
    width:99px; height:99px; 
    -webkit-background-size: cover; 
    -moz-background-size: cover; 
    -o-background-size: cover; 
    background-size: cover; 
    vertical-align:text-top; 
} 

我的代碼失敗,因爲它只是變成黑色圖片。但是在響應中,它顯示了我請求的圖像名稱的確切值,但是它失敗了,因爲它只是變成了黑色。

高級感謝。

+0

沒有TD屬性「背景」。在CSS文件中定義背景圖片。如果我沒有記錯,jQuery在操作它們之前依賴於預定義的CSS屬性。 –

+0

引號是明智的生物,不要忘記它們:) – Bigood

回答

5

background-image是正確的CSS屬性,而不是backgroungImage更新正如在評論中指出的,'backgroundImage'是有效的,因爲它引用了javascript屬性。

您也有data與串聯的一個問題:

$('#IMG').css('background-image','url(images/' + data + ')'); 

此外,解除您<td>background屬性,並通過CSS應用它:

#IMG{ background-image: url(images/default.jpg); } 
+0

jQuery同時接受'background-image'的CSS屬性和'backgroundImage'的JS等價屬性作爲字符串,所以兩者都可以工作。串聯是問題 –

+0

唉,我每天都會學到新的東西。我會更新答案。 –

0

嘗試改變

$('#IMG').css('backgroundImage',"url('images/+data+')") 

$('#IMG').css('backgroundImage','url(images/'+data+')');