没有jQuery的访问数据属性

在前端开发中,我们经常需要访问 HTML 元素的数据属性来获取或设置元素的一些状态或信息。使用 jQuery,可以方便地进行这些操作,但是如果你希望不依赖 jQuery,该怎么办呢?本文将介绍如何使用原生 JavaScript 访问 HTML 元素的数据属性。

什么是数据属性?

数据属性(Data Attributes)是 HTML5 中引入的一种自定义属性,以 "data-" 开头,并且可以存储任意字符串。例如:

---- ---------- --------------- -------------------

上面的代码中,data-info 就是一个数据属性,它的值为 "some information"

通过数据属性,我们可以把一些与元素相关联的信息存储在元素上,方便后续脚本操作时使用。

使用 getAttribute() 方法访问数据属性

要想使用 JavaScript 访问数据属性,最简单的方法就是使用 getAttribute() 方法。该方法接受一个参数,即要获取的属性名,返回该属性的值。

----- ----- - ---------------------------------
----- ---- - --------------------------------
------------------ -- -------- ------------

上面的代码中,我们首先通过 querySelector() 方法获取了 id"myDiv" 的元素,然后使用 getAttribute() 方法获取了它的 data-info 属性的值。结果会被输出到控制台上。

需要注意的是,getAttribute() 方法返回的始终是字符串类型,如果属性不存在,则返回 null

使用 dataset 属性访问数据属性

除了使用 getAttribute() 方法之外,还可以使用 dataset 属性来访问数据属性。该属性返回一个对象,包含了元素所有以 "data-" 开头的属性名和对应的属性值。

----- ----- - ---------------------------------
----- ---- - --------------
----------------------- -- -------- ------------

上面的代码中,我们使用 dataset 属性获取了 id"myDiv" 的元素的所有数据属性,并通过属性访问的方式获取了它的 data-info 属性的值。

需要注意的是,dataset 属性的属性名会自动转换成驼峰式命名,例如 data-info 转换为 info

使用 setAttribute() 方法修改数据属性

如果要修改元素的数据属性,可以使用 setAttribute() 方法。该方法接受两个参数,第一个参数为要设置的属性名,第二个参数为要设置的属性值。

----- ----- - ---------------------------------
------------------------------- ---- --------------
----- ------- - --------------------------------
--------------------- -- ------- ------------

上面的代码中,我们首先使用 querySelector() 方法获取了 id"myDiv" 的元素,然后使用 setAttribute() 方法将它的 data-info 属性值修改为了 "new information",最后使用 getAttribute() 方法获取修改后的属性值并输出。

总结

本文介绍了如何使用原生 JavaScript 访问 HTML 元素的数据属性。我们可以使用 getAttribute() 方法获取单个属性的值,使用 dataset 属性获取所有数据属性的键值对,使用 setAttribute() 方法修改数据属性的值。这些方法可以帮助我们在不依赖 jQuery 的情况下进行前端开发,提高代码的可维护性和灵活性。

示例代码:CodePen链接

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/15539