Javascript 在ajax请求后如何更改身体的背景图像?

Javascript 在ajax请求后如何更改身体的背景图像?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在做一个ajax请求,当它完成时,我想将body元素的背景图像更改为某个主题。主题只是一个数字1-5 我试过: document.body.style.background = "url('images/" + theme + "/background.jpg')"; 及 及 及 这些都不管用。如果我在url中输入硬代码,它会工作: $("body").css('background-image', 'url(images/1/background.jpg)'); 你知道我做错了什么吗?

我正在做一个ajax请求,当它完成时,我想将body元素的背景图像更改为某个主题。主题只是一个数字1-5

我试过:

document.body.style.background = "url('images/" + theme + "/background.jpg')";

这些都不管用。如果我在url中输入硬代码,它会工作:

$("body").css('background-image', 'url(images/1/background.jpg)');
你知道我做错了什么吗?

在我看来,你的主题变量可能有错误的值。尝试一个控制台.log'theme:'+theme;检查

您还可以在开发者控制台中查看是否报告了404错误。检查为您的图像调用的url

注意:如果您的主题变量是一个对象,那么将其转换为所需的字符串

您可以验证主题是否正确。如果预期为数字,请尝试以下操作:


$body.css'background-image','urlmages/'+theme.replace/[^\d]/g,+'/background.jpg'

你是否确保在所有ajax请求完成后调用代码?不,我不这么认为。可能就是这样。如果我打印出console.log'urlmages/'+theme+'/background.jpg'我会得到urlmages/4/background.jpg,但它会在4Ok之后将其分成两行。那里有一块空地。。需要修剪主题变量空间在那里,因为它打印到新的行。控制台logok中没有空格,然后尝试此主题。替换/[\n\s]/g,如$body.css'background-image',urlmages/'+theme.replace/[\n\s]/g,+'/background.jpg';i、 如果不同主题名称中没有空格。。。否则,请在替换中省略\s,主题名称为个位数。
$("body").css('background-image', 'url(images/' + theme + '/background.jpg)');
$("body").css('background-image', 'url("images/' + theme + '/background.jpg")');
$("body").css('background-image', 'url(images/1/background.jpg)');