为什么当我写

document.getElementByClass('home1').setAttribute('style', 'background-image:url(img/red_menu.PNG);');

它行不通吗?
我有class="home1"的元素

document.getElementById('home1')...工作正常
谢谢

最佳答案

它是getElementsByClassName,而不是getElementByClassdetails here。请注意,IE会执行not support this function(还)。
getElementsByClassName返回匹配元素的NodeList(而不是单个元素),因此:

var list, index;
list = document.getElementsByClassName("home1");
for (index = 0; index < list.length; ++index) {
    list[index].setAttribute(/* ... */);
}

对于这种事情,您可能想要使用jQueryPrototypeGoogle Closure等库来为您浏览器的各种差异铺平道路。与您自己处理这些差异相比,它们可以为您节省大量时间和麻烦。

例如,在jQuery中:
$(".home1").attr(/* ... */);

...将该属性(通过 jQuery#attr )应用于类“home1”的每个元素。尽管在您的特定情况下,您可能需要 jQuery#css 代替。

10-04 16:45