HTML DOM getElementsByClassName() 方法

元素对象参考手册 元素对象

在 class="example" 的列表中修改 class="child" 的第一项(索引值为 0) 的文:

<ul class="example">
  <li class="child">Coffee</li>
  <li class="child">Tea</li>
</ul>
<p>点击按钮修改第一个列表项的文本信息 (索引值为 0)。</p>
<button onclick="myFunction()">点我</button>
<p><strong>注意:</strong> Internet Explorer 8 及更早 IE 版本不支持 getElementsByClassName() 方法。</p>
<script>
  function myFunction() {
    var list = document.getElementsByClassName("example")[0];
    list.getElementsByClassName("child")[0].innerHTML = "Milk";
  }
</script>

尝试一下 »


定义和使用

getElementsByClassName() 方法返回文档中所有指定类名的元素集合,作为 NodeList 对象。

NodeList 对象代表一个有顺序的节点列表。NodeList 对象 我们可通过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。

提示: 你可以使用 NodeList 对象的 length 属性来确定指定类名的元素个数,并循环各个元素来获取你需要的那个元素。


浏览器支持

表格中的数字表示支持该方法的第一个浏览器的版本号。

方法
getElementsByClassName() 4.0 9.0 3.0 3.1 9.5

语法

element.getElementsByClassName(classname)

参数值

参数 类型 描述
classname String 必须。你需要获取的元素类名。

多个类名使用空格分隔,如 "test demo"。

技术描述

DOM Version: Core Level 1 Element Object
Return Value: NodeList 对象,表示指定类名的元素集合。元素在集合中的顺序以其在代码中的出现次序排序。

更多实例

修改 <div> 元素中第二个 class="child" 元素的背景颜色:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>蜜蜂教程(mifengjc.com)</title>
  <style>
    div {
      border: 1px solid black;
      margin: 5px;
    }
  </style>
</head>
<body>

  <div id="myDIV">
    <p class="child">div 元素中第一个 class="child" 的 p 元素 (索引值为 0).</p>
    <p class="child">div 元素中第二个 class="child" 的 p 元素 (索引值为 1).</p>
    <p class="child">div 元素中第三个 class="child" 的 p 元素 (索引值为 2).</p>
  </div>
  <p>点击按钮为 div 元素中第二个 class="child" 的 p 元素添加背景颜色。</p>
  <button onclick="myFunction()">点我</button>
  <p><strong>注意:</strong> Internet Explorer 8 及更早 IE 版本不支持 getElementsByClassName() 方法。</p>
  <script>
    function myFunction() {
      var x = document.getElementById("myDIV");
      x.getElementsByClassName("child")[1].style.backgroundColor = "red";
    }
  </script>

</body>
</html>

尝试一下 »


查看 <div> 元素中有多少个 class="child" 的元素 (使用 NodeList 的 length 属性):

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>蜜蜂教程(mifengjc.com)</title>
  <style>
    div {
      border: 1px solid black;
      margin: 5px;
    }
  </style>
</head>
<body>

  <div id="myDIV">
    <p class="child">div 元素中第一个 class="child" 的 p 元素 (索引值为 0).</p>
    <p class="child">div 元素中第二个 class="child" 的 p 元素 (索引值为 1).</p>
    <p class="child">div 元素中第三个 class="child" 的 p 元素 (索引值为 2).</p>
  </div>
  <p>点击按钮查看 div 元素中类名为 "child" 的元素有几个。</p>
  <button onclick="myFunction()">点我</button>
  <p><strong>注意:</strong> Internet Explorer 8 及更早 IE 版本不支持 getElementsByClassName() 方法。</p>
  <p id="demo"></p>
  <script>
    function myFunction() {
      var x = document.getElementById("myDIV").getElementsByClassName("child");
      document.getElementById("demo").innerHTML = x.length;
    }
  </script>

</body>
</html>

尝试一下 »


修改class="example"元素中第一个类名为 "child" 和 "color" 元素的背景颜色:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>蜜蜂教程(mifengjc.com)</title>
  <style>
    div {
      border: 1px solid black;
      margin: 5px;
    }
  </style>
</head>
<body>

  <div class="example">
    <p class="child">在 class="example" 的第一个 div 元素中 class="child" 的 P 元素。 P 的索引值为 0,Div 的索引值为 0。</p>
  </div>
  <div class="example">
    <p class="child color">
      在 class="example" 的第二个 div 元素中 class="child color" 的第一个 P 元素。 P 的索引值为 0,Div 的索引值为 1。
    </p>
    <p class="child color">
      在 class="example" 的第二个 div 元素中 class="child color" 的第二个 P 元素。 P 的索引值为 1,Div 的索引值为 1。
    </p>
  </div>
  <div class="example">
    <p class="child color">在 class="example" 的第三个 div 元素中 class="child color" 的 第一个P 元素。 P 的索引值为 0,Div 的索引值为 2。</p>
    <p class="child color">在 class="example" 的第三个 div 元素中 class="child color" 的 第二个P 元素。 P 的索引值为 1,Div 的索引值为 2。</p>
  </div>
  <p>点击按钮修改 class="example" 的 div 元素中类名为 "child" 和 "color"的第一个 p 元素。</p>
  <button onclick="myFunction()">点我</button>
  <p><strong>注意:</strong> Internet Explorer 8 及更早 IE 版本不支持 getElementsByClassName() 方法。</p>
  <script>
    function myFunction() {
      var x = document.getElementsByClassName("example")[1];
      x.getElementsByClassName("child color")[0].style.backgroundColor = "red";
    }
  </script>

</body>
</html>

尝试一下 »


修改 <div> 元素中 class="child" 的所有元素背景颜色:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>蜜蜂教程(mifengjc.com)</title>
  <style>
    div {
      border: 1px solid black;
      margin: 5px;
    }
  </style>
</head>
<body>

  <div id="myDIV">
    <p class="child"> div 元素中 class="child" 的 p </p>
    <p class="child"> div 元素中 class="child" 的另外一个 p </p>
    <p>在 div 中的 p 元素插入 <span class="child">class="child" 的 span 元素</span> 。</p>
  </div>
  <p>点击按钮为 id="myDIV" 的 div 元素中所有 class="child" 元素添加背景颜色。 </p>
  <button onclick="myFunction()">点我</button>
  <p><strong>注意:</strong> Internet Explorer 8 及更早 IE 版本不支持 getElementsByClassName() 方法。</p>
  <script>
    function myFunction() {
      var x = document.getElementById("myDIV");
      var y = x.getElementsByClassName("child");
      var i;
      for (i = 0; i < y.length; i++) {
        y[i].style.backgroundColor = "red";
      }
    }
  </script>

</body>
</html>

尝试一下 »


相关文章

CSS 教程: CSS 选择器

CSS 参考手册: CSS .class 选择器

HTML DOM 参考手册: document.getElementsByClassName()

HTML DOM 参考手册: className 属性

HTML DOM 参考手册: HTML DOM Style 对象


元素对象参考手册 元素对象