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/41008165/

相关文章:

javascript - 将文本文件输入的信息解析为 JSON 格式

javascript - Vue 未定义

html - 如何使具有相同值的单选按钮可重复使用?

javascript - React.js 中 componentWillMount 调用的顺序

javascript - 2 Div 关闭并删除中间的 1 div

javascript - 最后一行不等到长时间运行循环结束

javascript - NodeJS 模块 - 填充数组变成空对象。为什么?

javascript - 将已排序的对象除以 4 以将它们列在 col-md-3 中

javascript - 当我尝试将新对象添加到状态数组时,它将所有现有对象更改为新对象

javascript - 使用CSS改变不透明度的颜色