我一直在尝试修改我的网站http://www.gfcf14greendream.com/,通过使用javascript根据季节更改背景(并消除字体颜色的阅读问题,即只要在后台更改作品),围绕一个简单的函数工作:Javascript:使用图像 - 无法调用方法'setAttribute'null
function setSeasonTheme() {
var today = new Date();
var first = new Date(today.getFullYear(), 0, 1);
var dayYear = Math.round(((today - first)/1000/60/60/24) + .5, 0);
if (dayYear >= 1 && dayYear < 80)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/winterbg.png");
}
if (dayYear >= 80 && dayYear < 172)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/springbg.png");
}
if (dayYear >= 172 && dayYear < 264)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/summerbg.png");
}
if (dayYear >= 264 && dayYear < 355)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/fallbg.png");
}
if (dayYear >= 355 && dayYear <= 366)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/winterbg.png");
}
}
应该根据今年则是在当日改变页面的背景下,修改在这个div img标签:
<div id="background">
<img id="mainbg" src="http://www.gfcf14greendream.com/images/greentwi.png" class="stretch" alt="" />
</div>
但是仍然会显示图像的原始网址http://www.gfcf14greendream.com/images/greentwi.png。通过该功能,其src应为http://www.gfcf14greendream.com/images/summerbg.png。权当调试器到达这条线,document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/summerbg.png");
,我得到这个错误:
Uncaught TypeError: Cannot call method 'setAttribute' of null
这究竟是为什么?如果显示原始图像,为什么背景的img标签应为null?感谢任何能够提供帮助或建议的人。
我猜代码在你的页面完全加载之前执行 – Musa