html如何获取_获取HTML元素内容或属性的方法【教程】
发布时间 - 2026-01-06 00:00:00 点击率:次最直接的方式是用 document.getElementById() 获取元素再取内容或属性:先通过 ID 定位元素,再用 .textContent、.innerHTML 或 .getAttribute() 读取内容或属性。
用 document.getElementById() 获取元素再取内容或属性
这是最直接的方式:先通过 ID 定位元素,再用 .textContent、.innerHTML 或 .getAttribute() 读取内容或属性。
-
.textContent只取纯文本(不含标签),且会合并空白符 -
.innerHTML返回包含 HTML 标签的字符串,修改它会触发重渲染 -
.getAttribute('href')读取 HTML 属性(如href、data-id),对布尔属性(如disabled)返回"disabled"或null - 注意:如果 ID 不存在,
document.getElementById()返回null,后续调用.textContent会报C
annot read property 'textContent' of null
const el = document.getElementById('myBtn');
if (el) {
console.log(el.textContent); // "提交"
console.log(el.getAttribute('data-value')); // "123"
}
用 querySelector() 和 querySelectorAll() 更灵活地选中元素
当没有 ID,或需按类名、属性、伪类等条件匹配时,这两个方法更实用。它们返回的是 Element 或 NodeList,操作方式一致。
-
querySelector()只返回第一个匹配项(null表示没找到) -
querySelectorAll()返回所有匹配的NodeList(即使为空,也不为null) - 支持复杂选择器:
querySelector('button[data-type="save"]')、querySelector('.item:last-child') - 获取属性仍用
.getAttribute();取文本优先用.textContent,除非明确需要 HTML 结构
const btn = document.querySelector('button[data-action="delete"]');
if (btn) {
console.log(btn.textContent.trim()); // 去掉前后空格
}
const items = document.querySelectorAll('.list-item');
items.forEach(item => {
console.log(item.dataset.id); // 读取 data-id 属性(自动转为驼峰)
});
用 .dataset 快速访问 data- 自定义属性
HTML5 的 data-* 属性是常用的数据载体,用 .dataset 访问比 .getAttribute() 更简洁,且自动处理命名转换。
-
data-user-id→el.dataset.userId(连字符转驼峰) -
data-api-url→el.dataset.apiUrl - 如果属性值含数字开头(如
data-1st-place),无法通过点号访问,得用方括号:el.dataset['1st-place'] -
.dataset是只读映射,修改它不会同步更新 HTML 属性;要写入请用.setAttribute()
常见陷阱:innerHTML vs textContent、null 检查、动态内容未加载
很多“取不到内容”的问题其实不是方法错,而是时机或理解偏差。
- 用
.innerHTML读取后又赋值给另一个元素,可能引入 XSS 风险;纯展示文本请坚持用.textContent - 脚本执行早于 DOM 加载?确保放在
# vue
# react
# html
# js
# node
# html5
# html元素
# xss
# NULL
# if
# select
# 字符串
# Property
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用withoutEvents方法临时禁用模型事件
如何用VPS主机快速搭建个人网站?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
浅谈javascript alert和confirm的美化
晋江文学城电脑版官网 晋江文学城网页版直接进入
b2c电商网站制作流程,b2c水平综合的电商平台?
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
如何在腾讯云服务器上快速搭建个人网站?
Laravel distinct去重查询_Laravel Eloquent去重方法
,怎么在广州志愿者网站注册?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
Laravel如何实现文件上传和存储?(本地与S3配置)
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
网站制作免费,什么网站能看正片电影?
Laravel如何配置Horizon来管理队列?(安装和使用)
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
如何确保FTP站点访问权限与数据传输安全?
个人网站制作流程图片大全,个人网站如何注销?
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
Laravel如何生成API文档?(Swagger/OpenAPI教程)
C++时间戳转换成日期时间的步骤和示例代码
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
如何快速配置高效服务器建站软件?
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
5种Android数据存储方式汇总
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
海南网站制作公司有哪些,海口网是哪家的?
三星网站视频制作教程下载,三星w23网页如何全屏?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
创业网站制作流程,创业网站可靠吗?
如何在Windows虚拟主机上快速搭建网站?
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
JS碰撞运动实现方法详解
大连网站制作公司哪家好一点,大连买房网站哪个好?
简历在线制作网站免费版,如何创建个人简历?
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
如何在新浪SAE免费搭建个人博客?
装修招标网站设计制作流程,装修招标流程?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
如何在IIS管理器中快速创建并配置网站?
如何自定义建站之星模板颜色并下载新样式?


annot read property 'textContent' of null