html5 自定义实体,HTML5 自定义属性

本文介绍了在JavaScript中处理HTML元素自定义数据属性的几种方法,包括使用getAttribute、setAttribute、dataset API以及jQuery的attr和data方法。对比了它们在存取data-*属性时的差异,强调了dataset API的便捷性和实时性,并指出jQuery.data不会直接更新HTML元素的data属性。对于处理多个自定义属性,直接使用dataset API更为高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义属性:添加前缀“data-”

dataset属性:添加自定义属性后,通过元素的dataset属性来访问自定义属性的值(属性名没有data-前缀)

data-name:dataset.name

data-name-first:dataset.nameFirst

div

1.利用 getAttribute、setAttribute 存取 dataset

var oDiv = document.getElementById("div1");

//get

console.log(oDiv.getAttribute("data-name")); // china

console.log(oDiv.getAttribute("data-name-all")); // chinese

//set

oDiv.setAttribute("data-name","hello");

oDiv.setAttribute("data-name-all","hi");

这样就可以以一种更兼容的方式,来存取dataset数据。所做出的任何更改,都是可以实时反映到元素data属性上的。

但是这种方法比较低端,如果遇到多个data-*自定义字段,想要一次全部获取所有的data属性并包装成对象的话,还必须做一个循环,很麻烦。

2.利用 dataset API 存取 dataset

var oDiv = document.getElementById("div1");

//get

console.log(oDiv.dataset.name); // china

console.log(oDiv.dataset.nameAll); // chinese

//set

oDiv.dataset.name = 'hello';

oDiv.dataset.nameAll = 'hi';

3.利用 jQuery.attr 方法存取 dataset

//get

console.log($('#div1').attr('data-name')); // china

console.log($('#div1').attr('data-name-all')); // chinese

//set

$('#div1').attr('data-name', 'hello');

$('#div1').attr('data-name-all', 'hi');

4.利用 jQuery.data 方法存取 dataset

//get

console.log($('#div1').data('name')); // china

console.log($('#div1').data('nameAll')); // chinese

//set

$('#div1').data('name', 'hello');

$('#div1').data('nameAll', 'hi');

这样的方法也能出色的存取data属性,但是需要注意,jQuery.data对data数据做出的更改,不会反映到HTML元素data属性上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值