热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何通过前缀获取所有data-*属性》经验,为你挑选了1个好方法。

我有这样的标签:

Link

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

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

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

我如何做到这一点,我查找了JQuery选择器,类似于属性启动选择器[名称^ ="值"]将无法工作,因为这里的变化是在名称上...

如果我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没有我不需要的东西的数组.



1> Roko C. Bulj..:
定位所有以... data-*开头的元素

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

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

给定数据foo-bar前缀,定位以下元素:

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

不是:

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 );
});


I have data-foo-bar

I have data-foo-bar-baz

I have data-bar DON'T SELECT ME

I have data-something DON'T SELECT ME


推荐阅读
author-avatar
蜗蜗家的逆时针
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有