【发布时间】:2014-09-22 04:25:28
【问题描述】:
我正在尝试根据季节更改元素的背景图像。我收到以下错误:
TypeError: document.getElementsByClassName(...).style is undefined
var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var total = month;
// Summer
if (total >= 6 && total <= 8)
{
document.getElementsByClassName("banner-container").style.backgroundImage = "url('images/homepage-banners/winter-banner.jpg')";
}
// Autumn
else if (total >= 9 && total <= 11)
{
document.getElementsByClassName("banner-container").style.backgroundImage = "url('images/homepage-banners/fall-banner.jpg')";
}
// Winter
else if (total == 12 || total == 1 || total == 2)
{
document.getElementsByClassName("banner-container").style.backgroundImage = "url('images/homepage-banners/winter-banner.jpg')";
}
// Spring
else if (total >= 2 && total <= 6)
{
document.getElementsByClassName("banner-container").style.backgroundImage = "url('images/homepage-banners/spring-banner.jpg')";
}
else
{
document.getElementsByClassName("banner-container").style.backgroundImage = "url('images/homepage-banners/summer-banner.jpg')";
}
使用标记更新脚本,切换到 getElementById:
<div class="custom banner-container">
<div id="home-banner">
<div class="dmr-welcome">
<img src="/dev/images/homepage-banners/dmr-banner1_07.jpg">
</div>
</div>
</div>
var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var total = month;
// Summer
if (total >= 6 && total <= 8)
{
document.getElementById("home-banner").style.backgroundImage = "url('images/homepage-banners/winter-banner.jpg')";
}
// Autumn
else if (total >= 9 && total <= 11)
{
document.getElementById("home-banner").style.backgroundImage = "url('images/homepage-banners/fall-banner.jpg')";
}
// Winter
else if (total == 12 || total == 1 || total == 2)
{
document.getElementById("home-banner").style.backgroundImage = "url('images/homepage-banners/winter-banner.jpg')";
}
// Spring
else if (total >= 2 && total <= 6)
{
document.getElementById("home-banner").style.backgroundImage = "url('images/homepage-banners/spring-banner.jpg')";
}
else
{
document.getElementById("home-banner").style.backgroundImage = "url('images/homepage-banners/summer-banner.jpg')";
}
错误是:
TypeError: document.getElementById(...) 为空 document.getElementById("home-banner").style.backgroundImage = "url('images/homepage-banners/fall-banner.jpg')";
【问题讨论】:
-
getElementsByClassName返回一个集合,你必须循环。
标签: javascript css getelementsbyclassname