跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端

JavaScript WebAPI 核心操作指南

WebAPI 包含 DOM 与 BOM,用于操作网页结构与样式。通过 querySelector 获取元素,注册事件处理用户交互。支持修改元素内容(innerText/innerHTML)、属性及表单值。示例涵盖按钮切换、计数及复选框全选逻辑。

GitMaster发布于 2026/2/4更新于 2026/5/312.5K 浏览
JavaScript WebAPI 核心操作指南

JavaScript WebAPI

WebAPI 背景知识

什么是 WebAPI

JavaScript 技术栈主要包含三部分:

  • ECMAScript:基础语法部分
  • DOM API:操作页面结构
  • BOM API:操作浏览器

WebAPI 包含了 DOM 和 BOM。这是由 W3C 组织制定的标准,独立于 ECMAScript 标准。

学习 JavaScript 基础语法主要是为了建立编程思维,而编写复杂的交互式页面则需要 WebAPI 的支持。

什么是 API

API 是一个广义概念,WebAPI 特指 DOM 与 BOM。API 本质上是现成的函数或对象,供开发者直接使用,类似于工具箱。

API 概念图

API 参考文档

可通过 MDN 文档搜索相关 API:https://developer.mozilla.org/zh-CN/docs/Web/API

DOM 基本概念

什么是 DOM

DOM(Document Object Model)是 W3C 标准提供的一系列接口,用于操作网页内容、结构和样式。

DOM 概念图

DOM 树

页面结构呈树形结构,称为 DOM 树。可以简单理解为类似家谱的层级关系。

如何使用 JavaScript 操作网页内容? 如何使用 JavaScript 操作网页结构? 如何使用 JavaScript 操作网页样式?

DOM 树结构

获取元素

这部分功能类似于 CSS 选择器。

querySelector

HTML5 新增方法,IE9 及以上版本支持。可复用 CSS 选择器知识,精准获取元素对象。

var element = document.querySelector(selectors);
  • selectors:有效的 CSS 选择器字符串。
  • 返回匹配的第一个元素的 Element 对象。
  • 若需获取所有匹配元素列表,使用 querySelectorAll()。
  • 可在任何元素上调用,该元素作为查找根节点。

注意参数必须是选择器格式,如 .box 为类选择器,#id 为 ID 选择器。

<div>abc</div>
<div>def</div>
<h3><span><input type="text"></span></h3>
<script>
var elem1 = document.querySelector('.box');
console.log(elem1);
var elem2 = document.querySelector('#id');
console.log(elem2);
var elem3 = document.querySelector('h3 span input');
console.log(elem3);
</script>
querySelectorAll

用法类似,但返回 NodeList 集合。

<div>abc</div>
<div>def</div>
<script>
var elems = document.querySelectorAll('div');
console.log(elems);
</script>

事件初识

基本概念

JS 构建动态页面需感知用户行为。用户的点击、选择等操作在浏览器中产生事件,被 JS 捕获后进行交互处理。

浏览器如同哨兵侦查用户行为,一旦触发动作即产生事件,程序根据事件决定后续策略。

事件三要素
  1. 事件源:哪个元素触发的。
  2. 事件类型:点击、选中还是修改等。
  3. 事件处理程序:如何处理,通常为回调函数。

简单示例

<button>点我一下</button>
<script>
var btn = document.getElementById("btn");
btn.onclick = function () {
    alert("hello world");
}
</script>
  • btn 按钮是事件源。
  • 点击是事件类型。
  • 匿名函数是事件处理程序。
  • btn.onclick = function() 称为注册事件或绑定事件。

该匿名函数无需主动调用,由浏览器在合适时机自动调用。

操作元素

获取 / 修改元素内容
  1. innerText 表示节点及其后代的渲染文本内容。
// 读操作
var renderedText = element.innerText;
// 写操作
element.innerText = string;

不识别 HTML 标签,非标准属性(IE 发起),读取结果不保留换行和空格。

<div>
    <span>hello world</span>
    <span>hello world</span>
</div>
<script>
var div = document.querySelector('div');
console.log(div.innerText);
div.innerText = 'hello js <span>hello js</span>';
</script>

通过 innerText 无法获取 HTML 结构,只能得到文本内容。

  1. innerHTML 设置或获取 HTML 语法表示的元素后代。
// 读操作
var content = element.innerHTML;
// 写操作
element.innerHTML = htmlString;

识别 HTML 标签,W3C 标准,保留换行和空格。

<div>
    <span>hello world</span>
    <span>hello world</span>
</div>
<script>
var div = document.querySelector('div');
console.log(div.innerHTML);
div.innerHTML = '<span>hello js</span>';
</script>

innerHTML 能获取并修改 HTML 结构,场景比 innerText 更多。

获取 / 修改元素属性

通过 Element 对象属性直接修改影响显示效果。

<img src="rose.jpg" alt="这是一朵花" title="玫瑰花">
<script>
var img = document.querySelector('img');
console.dir(img);
</script>

可直接获取属性值:

console.log(img.src);
console.log(img.title);
console.log(img.alt);

也可直接修改属性:

<img src="rose.jpg" alt="这是一朵花" title="玫瑰花">
<script>
var img = document.querySelector('img');
img.onclick = function () {
    if (img.src.lastIndexOf('rose.jpg') !== -1) {
        img.src = './rose2.png';
    } else {
        img.src = './rose.jpg';
    }
}
</script>

点击图片即可切换图片显示状态(需提前准备对应图片资源)。

获取 / 修改表单元素属性

表单(主要是 input 标签)的属性可通过 DOM 修改:

  • value:input 的值。
  • disabled:禁用。
  • checked:复选框使用。
  • selected:下拉框使用。
  • type:input 类型。
代码示例:切换按钮文本

模拟播放按钮在'播放'与'暂停'之间切换。

<input type="button" value="播放">
<script>
var btn = document.querySelector('input');
btn.onclick = function () {
    if (btn.value === '播放') {
        btn.value = '暂停';
    } else {
        btn.value = '播放';
    }
}
</script>
代码示例:点击计数

输入初始值,每次点击按钮值 +1。

<input type="text" id="text" value="0">
<input type="button" id="btn" value='点我+1'>
<script>
var text = document.querySelector('#text');
var btn = document.querySelector('#btn');
btn.onclick = function () {
    var num = +text.value;
    console.log(num);
    num++;
    text.value = num;
}
</script>
  • value 属性决定表单元素内容。
  • 输入框中 value 表示内容,修改会影响界面;界面上修改也会影响代码属性。
  • 按钮中 value 表示按钮文本。
代码示例:全选功能
  1. 点击全选按钮,则选中所有选项。
  2. 只要某个选项取消,则自动取消全选按钮勾选状态。
<input type="checkbox" id="all"> 我全都要<br>
<input type="checkbox" class="girl"> 貂蝉<br>
<input type="checkbox" class="girl"> 小乔<br>
<input type="checkbox" class="girl"> 安琪拉<br>
<input type="checkbox" class="girl"> 妲己<br>
<script>
// 1. 获取到元素
var all = document.querySelector('#all');
var girls = document.querySelectorAll('.girl');

// 2. 给 all 注册点击事件,选中/取消所有选项
all.onclick = function () {
    for (var i = 0; i < girls.length; i++) {
        girls[i].checked = all.checked;
    }
}

// 3. 给 girl 注册点击事件
for (var i = 0; i < girls.length; i++) {
    girls[i].onclick = function () {
        // 检测当前是不是所有的 girl 都被选中了
        all.checked = checkGirls(girls);
    }
}

// 4. 实现 checkGirls 函数
function checkGirls(girls) {
    for (var i = 0; i < girls.length; i++) {
        if (!girls[i].checked) {
            return false;
        }
    }
    return true;
}
</script>

目录

  1. JavaScript WebAPI
  2. WebAPI 背景知识
  3. 什么是 WebAPI
  4. 什么是 API
  5. API 参考文档
  6. DOM 基本概念
  7. 什么是 DOM
  8. DOM 树
  9. 获取元素
  10. querySelector
  11. querySelectorAll
  12. 事件初识
  13. 基本概念
  14. 事件三要素
  15. 简单示例
  16. 操作元素
  17. 获取 / 修改元素内容
  18. 获取 / 修改元素属性
  19. 获取 / 修改表单元素属性
  20. 代码示例:切换按钮文本
  21. 代码示例:点击计数
  22. 代码示例:全选功能
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • OpenClaw 本地安装与环境配置指南
  • 大模型四大技术架构解析:Prompt、Agent、RAG 与微调
  • 如何成为卓越的 AIGC 产品经理:从传统产品到 AI 领域的转型指南
  • Linux 网络:数据链路层详解
  • C++ 内存管理进阶:从裸指针到智能指针
  • Python 稳居 TIOBE 排行榜榜首:核心特性与应用场景详解
  • Python FastAPI 入门指南:从零构建生产级 RESTful API
  • Cppcheck:C/C++ 代码静态分析工具使用指南
  • OpenAI 与 Anthropic 首席产品官分享 AI 产品设计经验
  • Spring MVC 核心架构与注解详解
  • C# 使用 Log4Net 配置日志
  • Java 异常处理机制:try-catch 用法与体系结构
  • 文心一言大模型本地部署与微调实战指南
  • Flutter Web 混合开发:构建跨平台 Web 应用
  • 在线图书借阅平台的设计与实现:AI 辅助开发实战
  • Boltz-2 安装及用法:结构与亲和力预测模型
  • GitHub 上 10 个适合新手入门的 Python 教程与项目推荐
  • AI 智能体 WorkBuddy 功能特性与办公自动化应用
  • Actix Web框架全面指南与Rust Web开发
  • 智慧医疗机器人竞赛惯导与视觉避障实践思路

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online