如何通过Prefix获取所有data-*属性

2024-03-25

我有一个这样的标签:

<a href="#" id="ssd" data-toggle="popover" data-info1="demo text: 1" data-info2="demo text: 2" data-info3="demo text3">Link</a>

当我点击这个链接时,我有一个这样的功能

$('#ssd').click(function (event) {
    var customData;
    // Code to get all the custom data in format like data-info*
});

请注意,类似 data-info* 的属性可以是任意数字,这意味着您可以看到其中的 1 个,名为 data-info1,或者其中的一个,名为 data-info1、data-info2、data-info3。

我该怎么做,我查找了 JQuery 选择器,像 Attribute Starts With Selector [name^="value"] 这样的东西将不起作用,因为这里的变化是在名称上......

If I console.log($('#ssd').data());我将得到一个具有我不需要的额外属性的对象,toggle: "popover", bs.popover: Popover

有什么建议么?

这就是我所做的:

dataFullList = $(this).data();
$.each(dataFullList, function (index, value) {
    if (index !== "toggle" && index !== "bs.popover") {
        item.name = value.split(":")[0];
        item.number = value.split(":")[1];
        dataIWant.push(item);
    }
});

所以我会得到一个dataIWant没有我不需要的东西的数组。


定位所有元素data-*以。。开始

自定义 jQuery 选择器selector:dataStartsWith()

这是一个自定义 jQuery 选择器,可以帮助您:

鉴于data-foo-bar字首 ,target以下要素:

data-foo-bar
data-foo-bar-baz

but not:

data-foo-someting
data-something

jQuery.extend(jQuery.expr[':'], { 
  "dataStartsWith" : function(el, i, p, n) {  
    var pCamel = p[3].replace(/-([a-z])/ig, function(m,$1) { return $1.toUpperCase(); });
    return Object.keys(el.dataset).some(function(i, v){
      return i.indexOf(pCamel) > -1;
    });
  }
});


// Use like:
$('p:dataStartsWith(foo-bar)').css({color:"red"});  

// To get a list of data attributes:
$('p:dataStartsWith(foo-bar)').each(function(i, el){
  console.log( el.dataset );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p data-foo-bar="a">I have data-foo-bar</p>
<p data-foo-bar-baz="b" data-extra="bbb">I have data-foo-bar-baz</p>
<p data-bar="a">I have data-bar DON'T SELECT ME</p>
<p data-something="b">I have data-something DON'T SELECT ME</p>

自定义 jQuery 方法$().dataStartsWith()

$.fn.dataStartsWith = function(p) {
  var pCamel = p.replace(/-([a-z])/ig, function(m,$1) { return $1.toUpperCase(); });
  return this.filter(function(i, el){
    return Object.keys(el.dataset).some(function(v){
      return v.indexOf(pCamel) > -1;
    });
  });
};


$('p').dataStartsWith("foo-bar").css({color:"red"});  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p data-foo-bar="a">I have data-foo-bar</p>
<p data-foo-bar-baz="b" data-extra="bbb">I have data-foo-bar-baz</p>
<p data-bar="a">I have data-bar DON'T SELECT ME</p>
<p data-something="b">I have data-something DON'T SELECT ME</p>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过Prefix获取所有data-*属性 的相关文章

随机推荐

  • Bundler 抛出没有这样的文件或目录进行 gem 安装

    在 Gemfile 中 gem backup git gt git github com tenmiles backup git ref gt develop n 本地和分阶段 bundle install确实成功完成了 在生产中 当bun
  • Swift 3:如何捏合缩放和旋转 UIImageView?

    我真的很难在网上找到教程以及已经回答的问题 我已经尝试过它们 但它们似乎不起作用 我的视图中心有一个 UIImageView 我目前可以点击并将其拖动到屏幕上任何我想要的位置 我希望能够通过捏合来缩放和旋转此视图 我该如何实现这一目标 我已
  • TrafficStats 函数始终返回 -1

    当我尝试使用 TrafficStats 类检索流量数据时 TrafficStats getTotalRxBytes and TrafficStats getTotalTxBytes 即使我使用浏览器加载某些网页 函数也总是返回 1 我从一些
  • 在 Java 中使用 Apache Common 的 WhoisClient

    我正在尝试使用 WhoisClient 对象进行 WHOIS 查询 但效果不佳 我的代码非常简单 String WHOIS SERVER WhoisClient DEFAULT HOST int WHOIS PORT 43 String h
  • __getattr__ 和 __getattribute__ 之间的区别

    我试图理解何时定义 getattr or getattribute The python 文档 http docs python org reference datamodel html highlight getattribute obj
  • 使用 Android Application 类来保存数据

    我正在开发一个相当复杂的 Android 应用程序 该应用程序需要大量有关该应用程序的数据 我想说总共大约 500KB 对于移动设备来说这个数据大吗 据我所知 应用程序中 更准确地说是活动中 的任何方向变化都会导致活动的完全破坏和重新创建
  • 如何对 USB/HID/蓝牙适配器进行逆向工程。使用什么工具?

    需要对蓝牙USB鼠标适配器进行逆向工程 并使用鼠标板测量距离 并用绘图库 http matplotlib org 我发现这些工具可以帮助完成此任务 Linux lsusb usbmon usbhid转储 rfcomm hidrd 转换 xx
  • Windows 版 Github - ssh-agent.exe 使用高 CPU + 100% 磁盘?

    我刚刚在我的 Windows 8 1 计算机上安装了适用于 Windows 的 Github 它似乎工作正常 只是我的计算机性能急剧下降 看看任务管理器我看到ssh agent exe正在使用一个常数25 CPU 毫无疑问 100 是我的核
  • 是否可以检查您的系统上是否在 Rust 中定义了 C 宏?

    我知道 Rust 中的 libc 包包含许多在 Rust 中使用的 C 标准宏和函数 但它也声明它不关心系统之间的可移植性 我将一些大量使用 C 预处理器宏的代码从 C 移植到 Rust 并且仅在定义了给定宏的情况下才包含一些代码 在本例中
  • 检查 SQL 查询是否在 PDO 中执行[重复]

    这个问题在这里已经有答案了 在 mysql query 中 我们可以通过执行以下操作来检查查询是否已执行 query yourdbconnection gt fetch array mysql query SELECT FROM tbl n
  • Python使用GET从API检索多页数据

    我正在尝试使用Python 3requests get从中检索数据这一页 https api safecast org en US measurements locale en US 使用其 API 我有兴趣使用以下方法从所有页面检索数据A
  • 如何填写列表(类型)?

    我正在尝试验证输入的多维数组 我需要在将数据发送到准备好的语句之前验证数据类型 我正在做一个Function可用于检查从接收到的多维数组的数据类型WebMethodajax 调用 以多维数组作为参数和列表Types 作为另一个来检查列 我正
  • Erlang 中的 Apple 推送通知(或 Ruby 中的改进?)

    目前 我的服务器上有一个使用 Ruby 运行的 Apple 推送通知 我想在 Erlang 中使用一个 因为我想使用一个主管来监视它 有人有任何代码可以帮助我吗 这是我的 Ruby 代码 我不喜欢当前实现的一件事是它似乎无法保持连接 它每天
  • 什么会导致 Valgrind 堆栈跟踪中出现奇怪的地址?

    这个问题与从 valgrind 输出中过滤掉垃圾 https stackoverflow com questions 34325305 filtering out junk from valgrind output 我正在尝试调试一个大型项
  • ResolveUrl 和 ResolveClientUrl 有什么区别?

    我一直在使用 ResolveUrl 在 ASP NET 文件中添加 CSS 和 Javascript 但我通常会看到 ResolveClientUrl 的选项 两者有什么区别 我什么时候应该使用 ResolveClientUrl Resol
  • C++无法打开源文件

    在使用 Visual Studio 2017 的 C 中 我将一些头文件复制到我的项目文件夹中 然后将它们添加到 c 中的 解决方案资源管理器 下 现在当我写的时候 include name h 它在包含下打印一个错误 并显示 无法打开源文
  • 嵌套类构造函数的可见性

    C 中有没有办法限制嵌套类的实例化 我想防止嵌套类从除嵌套类之外的任何其他类实例化 但允许从其他代码完全访问嵌套类 通常 我会为要向其他类公开的功能创建一个接口 然后将嵌套类设为私有并实现该接口 这样嵌套类定义可以保持隐藏 public c
  • Java 使用 Java 8 时间库将 UTC 转换为 PDT/PST

    我想使用内置的 Java 8 时间库将 UTC 转换为 PST PDT 我正在编写一个与 API 对话的程序 该 API 根据时间范围返回对象列表 例如 从某个日期时间创建 修改的对象 我的程序使用LocalDateTime并且该值始终采用
  • 将 docker 与 RDS (Prod) 一起使用,但对本地数据库设置感到困惑 (dev)

    我正在使用 Docker 设计一个 Rails web 应用程序 出于多种原因 我想在生产环境中使用 RDS 来实现其可配置性和耐用性 而不是基于 Docker 容器的数据库 这是一个要求 我意识到我可以配置数据库 yml指向 Prod 环
  • 如何通过Prefix获取所有data-*属性

    我有一个这样的标签 a href Link a 当我点击这个链接时 我有一个这样的功能 ssd click function event var customData Code to get all the custom data in f