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

【Web APIs】JavaScript 自定义属性操作 ② ( H5 自定义属性 )

文章目录

  • 一、H5 自定义属性
    • 1、H5 自定义属性 概念简介
    • 2、H5 自定义属性 访问方法
    • 3、H5 自定义属性 应用场景
  • 二、H5 自定义属性 代码示例





一、H5 自定义属性




1、H5 自定义属性 概念简介


在进行 前端页面 开发时 , 可能需要用到一些 临时数据 , 仅需要在页面中使用 , 不需要保存到后台数据库 中 , 此时 就可以 使用 " HTML5 自定义属性 " ;

HTML5 自定义属性 的 目的 是 保存并使用一些数据 ;

HTML5 自定义属性 是 以 data-前缀 命名的属性 , 用于存储私有数据 ;

H5 自定义属性 与 标准属性 的区别 : 不参与 DOM 树 渲染 , 仅 供开发者存储额外信息 ;


H5 自定义属性 命名规范 : data-* 格式 , 这是为了 避免 开发者 将 自定义属性 与 元素本身属性 混淆 而制定的规范 , 推荐使用小写和连字符 , 如 : data-user-id ;

<div data-user-id="2"></div>

注意 : H5 自定义属性 容易出现歧义 , 需要 判断 元素属性 是 内置属性 还是 自定义属性 ;


2、H5 自定义属性 访问方法


HTML5 自定义属性 访问方法 : 给定 如下 自定义属性 data-user-id ;

<div data-user-id="2"></div>
  • getAttribute / setAttribute ( 推荐使用 , 不存在兼容性问题 ) : 直接操作属性名 , getAttribute 是获取 H5 自定义属性值 , setAttribute 是设置 H5 自定义属性值 ; ( 兼容性 : 任意浏览器版本都支持 )
element.getAttribute('data-user-id'); 
element.setAttribute('data-user-id', '123');
  • DOM API ( 由于兼容性问题不推荐使用 ) : 通过 element.dataset 对象访问 , 属性名转为驼峰式 , 如 : 访问 data-user-id 自定义属性的方法是 element.dataset.userId ; ( 兼容性 : 需要 IE11 以上才能支持 )
const element = document.getElementById('example');
console.log(element.dataset.userId); // 输出自定义属性值

3、H5 自定义属性 应用场景


HTML5 自定义属性 应用场景 :

  • 动态数据绑定 : 存储 与 DOM 元素关联 的 JSON 或 状态 数据 ;
  • CSS 交互控制 : 通过属性选择器( [data-*] )触发样式变化 ;
  • 框架集成 : 与 Vue、React 等框架的数据传递结合使用 ;

H5 自定义属性 实践示例 :

  • 动态内容加载 : 通过 data-api-url 属性绑定异步请求的URL ;
  • 表单验证 : 利用 data-validation-rules 定义校验规则 ;
  • 组件通信 : 在 自定义 Web 组件 中 传递 配置参数 ;




二、H5 自定义属性 代码示例



在下面的代码中 , 为 <div> 标签设置 H5 自定义属性

<div data-user-id="2"></div>

通过 Element#getAttribute 获取自定义属性 data-user-id 的值 :

div.getAttribute('data-user-id')

使用 Element#setAttribute 设置自定义属性 data-user-id 的值 :

div.setAttribute('data-user-id', 3)

通过 element.dataset 对象访问 , 如果自定义属性里面有多个 - 链接的单词 , 此时采取 驼峰命名法 , 访问 data-user-id 自定义属性的方法是 element.dataset.userId , dataset 是一个集合里面存放了所有以 data- 开头的 H5 自定义属性 ;

        console.log(div.dataset);console.log(div.dataset.userId);console.log(div.dataset['userId']);

完整代码示例 :

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>H5自定义属性</title>
</head><body><div data-user-id="2"></div><script>// 获取 div 标签元素var div = document.querySelector('div');// 使用 Element#getAttribute 获取自定义属性 data-user-id 的值 console.log(div.getAttribute('data-user-id'));console.log("设置 data-user-id 自定义属性值为 " + 3);// 使用 Element#setAttribute 设置自定义属性 data-user-id 的值 div.setAttribute('data-user-id', 3);// 验证设置的 自定义属性值console.log(div.getAttribute('data-user-id'));console.log("使用 Element#dataset 获取 H5 自定义属性");// 通过 element.dataset 对象访问 // 如果自定义属性里面有多个 - 链接的单词 , 此时采取 驼峰命名法// 访问 data-user-id 自定义属性的方法是 element.dataset.userId// dataset 是一个集合里面存放了所有以 data- 开头的 H5 自定义属性console.log(div.dataset);console.log(div.dataset.userId);console.log(div.dataset['userId']);</script>
</body></html>

执行结果 :

在这里插入图片描述

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

相关文章:

  • 光纤收发器上的指示灯各代表的含义
  • 【ChatOpenAI】常用方法详解
  • 如何设计一个软件项目管理系统:架构设计合集(六)
  • min_25筛学习笔记+牛客多校02E
  • AWS Partner: Sales Accreditation (Business)
  • C++命名空间深度解析:避免命名冲突的终极解决方案
  • Kafka、RabbitMQ 与 RocketMQ 高可靠消息保障方案对比分析
  • 【数据结构初阶】--双向链表(二)
  • 明细列表,明细grid中的默认按钮失效,配置按钮失效
  • windows wsl2-06-docker hello world
  • windows wsl ubuntu 如何安装 open-jdk8
  • rustdesk客户端编译
  • NX二次开发常用函数坐标转化UF_MTX4_csys_to_csys和UF_MTX4_vec3_multipl
  • 【REACT18.x】creat-react-app在添加eslint时报错Environment key “jest/globals“ is unknown
  • 【橘子分布式】gRPC(编程篇-中)
  • Vue3生命周期函数
  • SQL基础操作指南:约束、表设计与复杂查询
  • Oracle RU19.28补丁发布,一键升级稳
  • 在摄像机视图中想像在普通 3D 视口里那样随意移动
  • 计算机网络1.1:计算机网络在信息时代的作用
  • 删除debian xdm自启动ibus的配置项
  • rust实现的快捷补全到剪贴板的实用工具
  • 汽车ECU控制器通信架构
  • 解决问题七大步骤
  • 论文reading学习记录4 - weekly - 视觉端到端开创-LOAM
  • [spring6: Advice Advisor Advised]-快速理解
  • Leetcode 05 java
  • Linux --进程信号
  • 本地部署开源的 AI 驱动的搜索引擎 Perplexica 并实现外部访问
  • FreeRTOS学习笔记之软件定时器