什么是data-id属性

data-id是HTML5中的自定义属性,用于在HTML元素中存储额外的数据。它通常用于菜单栏匹配、元素标识和数据传递等场景。与id属性不同,data-id主要用于存放数据,不会影响CSS选择器。

data-id的用途

data-id常用于以下场景:

  • 一级菜单与二级菜单的匹配关联
  • 存储元素相关的数据,配合JavaScript进行操作
  • 微信小程序中传递数据到事件处理函数
  • 替代隐藏域存储值,简化HTML结构

HTML示例

下面是一个使用data-id进行菜单匹配的示例:

<!-- 一级菜单 -->
  • 手机 / 运行商
<!-- 二级菜单 -->

获取data-id值的两种方法

方法一:使用jQuery的data()方法

data()方法是jQuery提供的用于获取data-*属性的方法,语法简洁:

$(function(){
    $('#plant').hover(function(){
        // 使用data()方法获取data-fruits属性的值
        var f1 = $(this).data('fruit');
        console.log(f1);  // 输出:12
    })
})

方法二:使用jQuery的attr()方法

attr()方法可以获取任意HTML属性,包括自定义的data-*属性:

$(function(){
    $('#plant').hover(function(){
        // 使用attr()方法获取data-fruit属性的值
        var f2 = $(this).attr('data-fruit');
        console.log(f2);  // 输出:12
    })
})

完整示例代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>获取data属性值示例</title>
    [removed][removed]
</head>
<body>
    
来呀!
[removed] $(function(){ $('#plant').hover(function(){ var f1 = $(this).data('fruit'); var f2 = $(this).attr('data-fruit'); console.log(f1); // 输出:12 console.log(f2); // 输出:12 }) }) [removed] </body> </html>

两种方法的区别

方法优点缺点
data()写法简洁,自动转换数字类型jQuery内部缓存数据,动态修改后可能获取不到最新值
attr()始终读取DOM属性,获取实时值返回值始终为字符串类型

原生JavaScript获取data属性

如果不使用jQuery,也可以使用原生JavaScript获取data属性:

使用getAttribute()

var element = document.getElementById('plant');
var value = element.getAttribute('data-fruit');
console.log(value);  // 输出:12

使用dataset属性(HTML5)

var element = document.getElementById('plant');
var value = element.dataset.fruit;
console.log(value);  // 输出:12

注意:使用dataset属性时,data-后面的名称需要转换为驼峰命名法。例如data-element-type在dataset中对应elementType。

总结

获取data-id值有多种方法,推荐使用:

  • 日常开发:使用$(this).data('id')写法最简洁
  • 需要实时值:使用$(this).attr('data-id')确保获取最新值
  • 原生JavaScript:使用element.dataset.id符合HTML5标准

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部