javascript - getElementByClass().setAttribute 不起作用

标签 javascript html

为什么我写

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(/* ... */);
}

对于这类事情,您可能需要使用类似 jQuery 的库, Prototype , Google Closure等,为您铺平各种浏览器差异。与您自己处理这些差异相比,他们可以为您节省很多时间和麻烦。

例如,在 jQuery 中:

$(".home1").attr(/* ... */);

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

关于javascript - getElementByClass().setAttribute 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2565909/

相关文章:

javascript - <链接> 为 "react-router-dom 6.7.0"

javascript - 最小高度问题

javascript - 提取漂亮网址的部分内容

html - div 的智能/液体内联间距

javascript - 在 jQuery 中查找 DOM 对象的节点名称

javascript - 切片对象的原型(prototype)

javascript - ionic 3、自定义组件和ngClass绑定(bind)问题

javascript - javascript中的私有(private)方法

c# - 如何在 asp :Repeater 中为标签使用 getElementbyId

javascript - 输入数字字段时 "enter/next"键在移动浏览器上的行为