使用DOM样式使用Javascript获取或更改CSS类属性

g

我的目标是更改表中各列的背景色,而不必分别通过ID或Name寻址每个数据条目。我知道有几种方法可以做到这一点,而我已经尝试了3种,但每种方法都存在问题。为了简单明了,在这个问题中,我想问如何使用DOM中element.style.backgroundColor对象成功地做到这一点这是我的HTML:

    <!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="tester.css">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
        <script type="text/javascript" src="tester.js"></script> 
    </head>
    <body>
    <button type="button" onClick="testerFunction()">Test</button>
        <table>
            <tr>
                <th class="col1">Column 1 Header</th>
                <th class="col2">Column 2 Header</th>
            </tr>
            <tr>
                <td class="col1">R1 C1</td>
                <td class="col2">R1 C2</td>
            </tr>
            <tr>
                <td class="col1">R2 C1</td>
                <td class="col2">R2 C2</td>
            </tr>
        </table>
     </body>
 </html>

我的CSS文件:

.col1{
    background-color:lime;  
}

和我的Javascript文件:

function testerFunction() {
    alert (document.getElementsByClassName('.col1').style.backgroundColor);  
}

当我运行它时,在IE,Firefox和Chrome浏览器中会收到大致相同的错误:

无法读取未定义的属性“ backgroundColor”。

我感觉它与document.getElementsByClassName DOM对象返回的数据类型有关被引用的网站说它返回一个HTMLcollection。我发现的其他地方说它返回元素的“列表”。我尝试制作一个数组并将结果分配给该数组,并使用循环访问该数组中的每个元素,但是在同一位置出现了相同的错误。可能是我不知道如何处理“集合”。无论如何,我都希望“ lime”或等效的hex或rgb,因为这是我在CSS文件中定义的。我希望能够使用Javascript进行更改。任何帮助将非常感激。谢谢!

编辑:向Shylo Hana的Answer中添加了参数,使其更加模块化

function testerFunction() {
    changeColumnColor('col1','blue');
}
function changeColumnColor(column,color) {
    var cols = document.getElementsByClassName(column);
    for(i=0; i<cols.length; i++) {
      cols[i].style.backgroundColor = color;
    }
}
Shylo Hana

正如Quynh Nguyen所提到的,您不需要'。'。在className中。但是-document.getElementsByClassName('col1')将返回对象数组。

这将返回“未定义”的值,因为数组没有类。您仍然需要遍历数组元素...

function changeBGColor() {
  var cols = document.getElementsByClassName('col1');
  for(i = 0; i < cols.length; i++) {
    cols[i].style.backgroundColor = 'blue';
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用javascript更改类的CSS样式,但不更改DOM

来自分类Dev

硒使用javascript获取元素的类属性

来自分类Dev

使用javascript更改类的CSS样式,但不更改DOM中的样式

来自分类Dev

无法使用 jquery 更改 css 样式属性

来自分类Dev

使用css()获取样式属性值

来自分类Dev

如何使用jquery和javascript获取类属性值

来自分类Dev

如何使用jquery和javascript获取类属性值

来自分类Dev

使用 javascript 更改 css 属性

来自分类Dev

使用JavaScript动态更改CSS样式

来自分类Dev

使用Excel VBA获取类属性值

来自分类Dev

如何使用jQuery从xmlhttprequest获取类属性

来自分类Dev

使用JavaScript在条件中添加类属性

来自分类Dev

使用jQuery和PHP更改现有的CSS类属性

来自分类Dev

如何使用 JavaScript 更改 CSS 显示属性?

来自分类Dev

使用jQuery更改CSS样式

来自分类Dev

使用纯JavaScript根据文本长度更改<p> css样式

来自分类Dev

使用 DOM 属性创建的样式按钮?

来自分类Dev

使用javascript获取和更改CSS属性,而无需查看特定元素

来自分类Dev

使用 DOM 事件更改 html 元素属性的 Javascript 按钮

来自分类Dev

如何使用C ++中的函数永久更改类属性值?

来自分类Dev

使用 .find() 获取缓存的 dom 元素的样式

来自分类Dev

使用JavaScript中的类属性设置多个HTML属性

来自分类Dev

如何使用Java 8 Stream从某些类属性获取列表?

来自分类Dev

如何使用反射获取嵌套类属性的值?

来自分类Dev

如何使用多重继承获取某些父类属性值

来自分类Dev

使用反射获取类属性信息,不返回任何内容

来自分类Dev

在 Laravel 中使用 Baum 获取可评论的类属性

来自分类Dev

如何使用 jquery 获取所有 div 标签类属性

来自分类Dev

循环遍历每个类属性并使用反射获取其值

Related 相关文章

  1. 1

    使用javascript更改类的CSS样式,但不更改DOM

  2. 2

    硒使用javascript获取元素的类属性

  3. 3

    使用javascript更改类的CSS样式,但不更改DOM中的样式

  4. 4

    无法使用 jquery 更改 css 样式属性

  5. 5

    使用css()获取样式属性值

  6. 6

    如何使用jquery和javascript获取类属性值

  7. 7

    如何使用jquery和javascript获取类属性值

  8. 8

    使用 javascript 更改 css 属性

  9. 9

    使用JavaScript动态更改CSS样式

  10. 10

    使用Excel VBA获取类属性值

  11. 11

    如何使用jQuery从xmlhttprequest获取类属性

  12. 12

    使用JavaScript在条件中添加类属性

  13. 13

    使用jQuery和PHP更改现有的CSS类属性

  14. 14

    如何使用 JavaScript 更改 CSS 显示属性?

  15. 15

    使用jQuery更改CSS样式

  16. 16

    使用纯JavaScript根据文本长度更改<p> css样式

  17. 17

    使用 DOM 属性创建的样式按钮?

  18. 18

    使用javascript获取和更改CSS属性,而无需查看特定元素

  19. 19

    使用 DOM 事件更改 html 元素属性的 Javascript 按钮

  20. 20

    如何使用C ++中的函数永久更改类属性值?

  21. 21

    使用 .find() 获取缓存的 dom 元素的样式

  22. 22

    使用JavaScript中的类属性设置多个HTML属性

  23. 23

    如何使用Java 8 Stream从某些类属性获取列表?

  24. 24

    如何使用反射获取嵌套类属性的值?

  25. 25

    如何使用多重继承获取某些父类属性值

  26. 26

    使用反射获取类属性信息,不返回任何内容

  27. 27

    在 Laravel 中使用 Baum 获取可评论的类属性

  28. 28

    如何使用 jquery 获取所有 div 标签类属性

  29. 29

    循环遍历每个类属性并使用反射获取其值

热门标签

归档