JavaScript DOM元素获取的5种常用方法详解

作者:窗边听雨时间:2026-10-30 18:49:22浏览:177

本文详细介绍JavaScript中获取DOM元素的五种核心方法:通过ID、标签名、Name属性、Class名以及CSS选择器。重点解析getElementById与querySelector返回单个元素对象,而getElementsBy*系列与querySelectorAll返回伪数组的区别,并结合具体代码案例演示如何遍历修改元素内容。

JavaScript DOM元素获取概述

在JavaScript开发中,操作DOM元素是前端交互的基础。掌握多种获取元素的方式,能够灵活应对不同的页面结构需求。

最基础且高效的方法是通过元素的唯一标识符进行获取。使用document.getElementById("id属性的值")即可定位到目标元素。

该方法执行后,返回值是一个具体的元素对象(Element Object)。如果文档中不存在该ID的元素,则返回null。

示例场景:点击按钮触发弹窗。

<body>
<input type="button" value="弹框" id="btn">
<script>
    //根据id属性的值从文档中获取这个元素
    var btnobj = document.getElementById("btn");
   //为当前的这个按钮元素(对象),注册点击事件,添加事件处理函数(匿名函数)
    btnobj.onclick = function () {
        //响应做的事情
        alert("码仙");
    };
</script>
</body>

JavaScript DOM元素获取概述

基于标签名与Name属性的获取方式

第二种方法是通过HTML标签名称来获取元素集合。调用document.getElementsByTagName("标签的名字")可以获取文档中所有指定标签的元素。

与getElementById不同,此方法返回的是一个伪数组(HTMLCollection)。虽然支持length属性和索引访问,但不具备标准数组的push、pop等方法。

示例场景:点击按钮后,批量修改多个p标签的文本内容。

<body>
<input type="button" value="改变" id="btn">
<div id="dv">
    <p>哈哈,我又变帅了</p>
    <p>哈哈,我又变帅了</p>
    <p>哈哈,我又变帅了</p>
    <p>哈哈,我又变帅了</p>
    <p>哈哈,我又变帅了</p>
</div>
<script>
    //根据id获取按钮,注册点击事件,添加事件处理函数
    document.getElementById("btn").onclick = function () {
        //根据标签名字获取标签
        var pObjs = document.getElementsByTagName("p");
        //var pObjs=document.getElementById("dv1").getElementsByTagName("p");
        //循环遍历这个数组
        for (var i = 0; i < pObjs.length; i++) {
            //每个p标签,设置文字
            pObjs[i].innerText = "我们都是p";
        }
    };
</script>
</body>

JavaScript DOM元素获取概述

JavaScript DOM元素获取概述

第三种方法是根据元素的name属性值来获取元素。使用document.getElementsByName("name属性的值")可以筛选出具有特定name属性的元素。

返回值同样是一个伪数组(NodeList)。需要注意的是,该方法在HTML文档中通常只用于表单元素,而在XML文档中可用于任何元素。

示例场景:点击按钮,将所有name属性值为name1的文本输入框的value属性值统一修改。

<body>
<input type="button" value="显示效果" id="btn"/><br/>
<input type="text" value="您好" name="name1"/><br/>
<input type="text" value="您好" name="name2"/><br/>
<input type="text" value="您好" name="name1"/><br/>
<input type="text" value="您好" name="name3"/><br/>
<input type="text" value="您好" name="name1"/><br/>
<input type="text" value="您好" name="name1"/><br/>
<script>
    //点击按钮,改变所有name属性值为name1的文本框中的value属性值
    document.getElementById("btn").onclick = function () {
        //通过name属性值获取元素-------表单的标签
        var inputs = document.getElementsByName("name1");
        for (var i = 0; i < inputs.length; i++) {
            inputs[i].value = "我很好";
        }
    };
</script>
</body>

JavaScript DOM元素获取概述

 JavaScript DOM元素获取概述

基于类名与CSS选择器的获取方式

第四种方法是通过CSS类名来获取元素。调用document.getElementsByClassName("类样式的名字")可以获取所有应用了该class的元素。

返回值是一个伪数组(HTMLCollection)。这是前端开发中非常常用的一种批量操作元素的方式。

示例场景:点击按钮后,修改所有具有特定class的文本框的值。

<body>
<input type="button" value="修改文本框的值" id="btn"/><br/>
<input type="text" value="" class="text"/><br/>
<input type="text" value="" class="text"/><br/>
<input type="text" value="" class="text"/>
<script>
    //根据id获取按钮,为按钮注册点击事件,添加事件处理函数
    document.getElementById("btn").onclick = function () {
        //获取所有的文本框
        //根据类样式的名字获取元素
        var inputs = document.getElementsByClassName("text");
        for (var i = 0; i < inputs.length; i++) {
            inputs[i].value = "码仙";
        }
    };
</script>
</body>

JavaScript DOM元素获取概述

JavaScript DOM元素获取概述

5.根据选择器获取元素 1.document.querySelector("选择器");

第一种是document.querySelector("选择器")。它接收一个CSS选择器字符串,返回文档中匹配该选择器的第一个元素对象。如果未找到匹配项,则返回null。

示例场景:点击按钮弹出提示框,演示如何获取单个元素并绑定事件。

<body>
<input type="button" value="显示效果1" id="btn"/>
<input type="button" value="显示效果2" class="btn"/>
<script>
    //点击按钮弹出对话框
    //根据选择器的方式获取元素
    var btnObj1 = document.querySelector("#btn");
    btnObj1.onclick = function () {
        alert("我变帅了");
    };
    var btnObj2 = document.querySelector(".btn");
    btnObj2.onclick = function () {
        alert("哈哈,我又变帅了");
    };
</script>
</body>

JavaScript DOM元素获取概述

JavaScript DOM元素获取概述

第二种是document.querySelectorAll("选择器")。它接收一个CSS选择器字符串,返回文档中匹配该选择器的所有元素集合。

返回值是一个静态的NodeList伪数组。与getElementsBy*系列不同,querySelectorAll返回的是实时快照,后续DOM变化不会影响已获取的集合。

示例场景:点击按钮后,利用querySelectorAll获取所有文本框并统一修改其值。

<body>
<input type="button" value="修改文本框的值" id="btn"/><br/>
<input type="text" value="" class="text"/><br/>
<input type="text" value="" class="text"/><br/>
<input type="text" value="" class="text"/>
<script>
    document.getElementById("btn").onclick = function () {
        //根据选择器的方式获取元素
        var inputs = document.querySelectorAll(".text");
        for (var i = 0; i < inputs.length; i++) {
            inputs[i].value = "码仙";
        }
    };
</script>
</body>

JavaScript DOM元素获取概述

JavaScript DOM元素获取概述

本文总结了JavaScript中常见的几种获取元素的方式,涵盖了从基础ID定位到现代CSS选择器查询的各种场景。理解各方法的返回值类型(单个对象 vs 伪数组)及其适用场景,有助于编写更高效、可维护的前端代码。

作者最新文章