js修改div里面的data-*的值

本文介绍了如何在HTML5中使用getAttribute和setAttribute方法操作data-*自定义属性,通过实例展示了如何获取和设置data-属性的值。

使用attributes方法存取 data-* 自定义属性的值

// 使用getAttribute获取 data- 属性
var cjzs= document . getElementById ( 'cjzs' ) ;
var c = cjzs. getAttribute ( 'data-to' ) ;
// 使用setAttribute设置 data- 属性
cjzs. setAttribute ( 'data-to' , '3000' ) ;

html5还是np

在 JavaScript 中,可以通过以下几种方式获取 HTML 元素上的 `data-*` 自定义属性的: ### 1. 使用 `dataset` 属性 每个 DOM 元素都有一个 `dataset` 属性,它是一个对象,包含了所有以 `data-` 开头的自定义属性。通过访问 `dataset.propertyName` 可以直接读取对应的。例如: ```javascript const element = document.getElementById("myElement"); const customValue = element.dataset.customData; // 获取 data-custom-data console.log(customValue); // 输出: "Hello, World!" ``` 这种方式简洁且推荐用于现代浏览器环境中[^1]。 ### 2. 使用 `getAttribute()` 方法 如果需要兼容更旧的浏览器或者动态处理属性名称,可以使用 `getAttribute()` 方法来获取 `data-*` 属性的原始字符串: ```javascript const element = document.getElementById("myElement"); const customValue = element.getAttribute("data-custom-data"); // 获取 data-custom-data console.log(customValue); // 输出: "Hello, World!" ``` 这种方法适用于任何类型的属性,并且能够准确获取当前属性的,不会受到缓存的影响[^3]。 ### 3. 在事件处理中获取 `dataset` 当元素嵌套较深时,为了确保获取到的是绑定事件元素自身的 `data-*` 属性,而不是子元素的,应该使用 `event.currentTarget.dataset` 而不是 `event.target.dataset`。示例如下: ```html <div> <div data-index="1" onclick="handleClick(event)"> <span>小强</span> </div> <div data-index="2" onclick="handleClick(event)"> <span>小红</span> </div> </div> ``` ```javascript function handleClick(event) { const dataset = event.currentTarget.dataset; const index = dataset.index; console.log("当前元素 index 为", index); } ``` 这样即使点击的是 `<span>` 元素,也能正确获取到父级 `<div>` 上的 `data-index` [^4]。 ### 4. 注意 jQuery 缓存问题 如果同时使用原生 JavaScript 和 jQuery 操作 `data-*` 属性,需要注意 jQuery 的 `.data()` 方法会将首次读取的缓存,之后即使用原生方法修改了属性,jQuery 也不会更新缓存。要强制 jQuery 获取最新的,必须使用 `.removeData()` 清除缓存后再调用 `.data()`: ```javascript $("#myElement").removeData("customData"); const updatedValue = $("#myElement").data("customData"); ``` 这种方式可以解决 jQuery 与原生 JS 混合使用时的数据同步问题[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值