当前位置: 首页 > news >正文

【HTML】document api

🔹 一、文档节点获取

  • 根节点相关

    • document.documentElement<html> 元素
    • document.head<head> 元素
    • document.body<body> 元素
  • 元素获取

    • getElementById(id) → 返回单个元素
    • getElementsByClassName(className) → 类数组,HTMLCollection
    • getElementsByTagName(tag) → 类数组,HTMLCollection
    • querySelector(selector) → 返回匹配的第一个元素
    • querySelectorAll(selector) → 返回 NodeList(可迭代)

🔹 二、节点创建 / 修改

  • createElement(tagName) → 创建元素节点
  • createTextNode(text) → 创建文本节点
  • appendChild(node) → 插入子节点
  • removeChild(node) → 移除子节点

🔹 三、文档信息

  • document.title → 文档标题
  • document.URL → 当前页面完整 URL
  • document.domain → 当前域名(可设置用于子域共享)
  • document.referrer → 引用来源 URL
  • document.cookie → 读写 cookie(受 SameSite、HttpOnly 限制)

🔹 四、事件相关

  • addEventListener(type, listener) → 事件绑定
  • removeEventListener(type, listener) → 移除事件
  • load 事件 → 所有资源加载完成

✅ 总结(面试答法)

👉 可以这样回答:

Document 提供的 API 主要分几类:

  1. 获取元素:如 getElementByIdquerySelector
  2. 创建修改:如 createElementappendChild
  3. 文档信息:如 titleURLcookie
  4. 事件相关:如 addEventListenerload

获取页面所有标签名

方法一:getElementsByTagName("*")

const allTags = document.getElementsByTagName("*")
const tagNames = [...allTags].map(el => el.tagName.toLowerCase())
console.log(tagNames)
  • * 表示选择所有元素
  • 返回 HTMLCollection,需要转为数组再取 .tagName
  • 输出所有标签名(可能会重复)

方法二:querySelectorAll("*")

const allTags = document.querySelectorAll("*")
const tagNames = [...allTags].map(el => el.tagName.toLowerCase())
console.log(tagNames)
  • 返回 NodeList,可直接用扩展运算符转数组
  • 效果和方法一类似

http://www.lryc.cn/news/625038.html

相关文章:

  • Vue 3中watch的返回值:解锁监听的隐藏技巧
  • C++---有符号和无符号整数的位移操作
  • RabbitMQ:数据隔离
  • kafka 冲突解决 kafka安装
  • Unity进阶--C#补充知识点--【Unity跨平台的原理】Mono与IL2CPP
  • 探索性测试:灵活找Bug的“人肉探测仪”
  • MongoDB Windows 系统实战手册:从配置到数据处理入门
  • keil错误:Error: failed to execute ‘D:\Keil\C51\BIN\BIN\A51.EXE‘
  • 【智慧工地源码】智慧工地云平台系统,涵盖安全、质量、环境、人员和设备五大管理模块,实现实时监控、智能预警和数据分析。
  • PYTHON让繁琐的工作自动化-猜数字游戏
  • 从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
  • 车e估牵头正式启动乘用车金融价值评估师编制
  • CoRL 2025|隐空间扩散世界模型LaDi-WM大幅提升机器人操作策略的成功率和跨场景泛化能力
  • 从「行走」到「思考」:机器人进化之路与感知—决策链路的工程化实践
  • 第4.3节:awk正则表达式详解-特殊字符
  • Pytest测试框架基础及进阶
  • 前端css学习笔记7:各种居中布局空白问题
  • Jenkins全链路教程——Jenkins调用Maven构建项目
  • IoT/透过oc_lwm2m和at源码,分析NB-IoT通信模组和主板MCU之间的通信过程
  • 【Jenkins】03 - 自动构建和docker构建
  • 【opencv-Python学习笔记(7):图像平滑处理】
  • 删除并获得点数
  • label studio标注时序数据
  • 力扣热题100------19.删除链表的倒数第N个结点
  • 深度学习篇---卷积
  • Linux unistd.h 包含功能
  • Spring 三级缓存:破解循环依赖的底层密码
  • 使用Idea安装JDK
  • [Code Analysis] docs | Web应用前端
  • 计算机视觉(9)-实践中遇到的问题(六路相机模型采集训练部署全流程)