为什么当我写作
document.getElementByClass('home1').setAttribute('style','background-image:url(img/red_menu.PNG);');
它不起作用?
我有class =“home1”的元素
与document.getElementById(‘home1’)…
工作良好
谢谢
最佳答案
它是getElementsByClassName,而不是getElementByClass; details 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(/* ... */);
}
对于这种情况,您可能希望使用像jQuery,Prototype,Google Closure等库来为您分配各种浏览器差异.与自己处理这些差异相比,它们可以为您节省大量时间和麻烦.
例如,在jQuery中:
$(".home1").attr(/* ... */);
…将该属性(通过jQuery#attr
)应用于具有“home1”类的每个元素.虽然在您的特定情况下,您可能需要jQuery#css
.