我可以使用jquery获取所有以“ on”开头的属性吗?

达斯汀·泊桑(Dustin Poissant)

我正在寻找一种使用jQuery或Vanilla JS获取以“ on”开头的元素的所有属性的方法。我目前正在获取所有属性,然后使用@primvdb在本文中提出的方法遍历它们以获得我想要的属性使用jQuery获取元素的所有属性

我的代码如下所示:

/* Expanding .attr as proposed by @primvdb */
(function(old) {
  $.fn.attr = function() {
    if(arguments.length === 0) {
      if(this.length === 0) {
        return null;
      }

      var obj = {};
      $.each(this[0].attributes, function() {
        if(this.specified) {
          obj[this.name] = this.value;
        }
      });
      return obj;
    }

    return old.apply(this, arguments);
  };
})($.fn.attr);

/* And then my function */
$.fn.attrThatBeginWith = function(begins){
  var attributes = this.attr();
  var attrThatBegin = {};
  for(var attr in attributes){
    if(attr.indexOf(begins)==0){
      attrThatBegin[attr] = attributes[attr];  
    }
  }
  return attrThatBegin;
};

/* Usage */
var onAttributes = $("#MyElement").attrThatBeginWith("on");

这是可行的,但非常“肮脏”。似乎对于jQuery的所有广泛功能,应该有一种更好的“更清洁”的方式来执行此操作。有人有什么建议吗?

阿德内

您可以使用来将所有属性附加到元素上element.attributes
可以将本机属性对象转换为数组,然后根据给定的字符串进行过滤。

执行上述操作的插件如下所示

$.fn.attrThatBeginWith = function(begins){
    return [].slice.call(this.get(0).attributes).filter(function(attr) {
        return attr && attr.name && attr.name.indexOf(begins) === 0
    });
};

小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用Gradle获取所有子项目的依赖关系树吗?

来自分类Dev

我可以使用ReSharper自动获取带有后备字段的格式属性吗?

来自分类Dev

我可以使用jquery操作<a>标记的名称属性吗?

来自分类Dev

我可以使用jquery从具有相同类的div中仅获取一组文本吗?

来自分类Dev

可以使用:checked CSS设置所有属性的所有元素吗?

来自分类Dev

我们可以使用属性文件中的表达式获取属性吗

来自分类Dev

我可以使用简单的CSS规则收缩Div和所有嵌套的Div吗?

来自分类Dev

我可以使用CSS flexbox强制包装所有项目吗?

来自分类Dev

我可以使用YouTube的LiveStreaming API访问所有直播吗?

来自分类Dev

我可以使用python过滤json文件中的所有data1值吗?

来自分类Dev

我可以使用Flurl.Http记录所有请求吗?

来自分类Dev

我可以使用fread下载文件夹中的所有文件吗?

来自分类Dev

我可以使用AUGraph播放多声道音频中的所有声道吗

来自分类Dev

我可以使用DOS命令代替文件所有者和创建时间吗?

来自分类Dev

我可以使用wget递归下载所有文件,而不下载其实际内容吗?

来自分类Dev

我可以使用 Gimp 擦除所有照片元数据吗?

来自分类Dev

我可以使用组合框中的所有项目遍历字典吗?

来自分类Dev

我可以使用@Value批注在ServletContextListener中获取系统属性吗

来自分类Dev

我可以使用WebDriver获取元素的CSS属性“填充”吗?

来自分类Dev

我可以使用Powershell获取json中属性的层次结构路径吗?

来自分类Dev

我可以使用Linq以比这更优雅的方式从集合中获取属性吗?

来自分类Dev

我可以使用带有所有属性(位置、法线、texCoord)的顶点缓冲区的单个顶点索引吗

来自分类Dev

我可以使用Jquery将自定义属性插入HTML元素吗?

来自分类Dev

我可以使用我所有的RAM来存储应用程序数据吗?

来自分类Dev

我可以使用Microsoft Graph API在我所属的MS Teams中的所有团队/组中搜索文件吗

来自分类Dev

我可以使用我所有的RAM来存储应用程序数据吗?

来自分类Dev

我可以使用输出变量获取值吗?

来自分类Dev

我可以使用php从localstorage获取数据吗

来自分类Dev

我可以使用两个溢出属性吗?

Related 相关文章

  1. 1

    我可以使用Gradle获取所有子项目的依赖关系树吗?

  2. 2

    我可以使用ReSharper自动获取带有后备字段的格式属性吗?

  3. 3

    我可以使用jquery操作<a>标记的名称属性吗?

  4. 4

    我可以使用jquery从具有相同类的div中仅获取一组文本吗?

  5. 5

    可以使用:checked CSS设置所有属性的所有元素吗?

  6. 6

    我们可以使用属性文件中的表达式获取属性吗

  7. 7

    我可以使用简单的CSS规则收缩Div和所有嵌套的Div吗?

  8. 8

    我可以使用CSS flexbox强制包装所有项目吗?

  9. 9

    我可以使用YouTube的LiveStreaming API访问所有直播吗?

  10. 10

    我可以使用python过滤json文件中的所有data1值吗?

  11. 11

    我可以使用Flurl.Http记录所有请求吗?

  12. 12

    我可以使用fread下载文件夹中的所有文件吗?

  13. 13

    我可以使用AUGraph播放多声道音频中的所有声道吗

  14. 14

    我可以使用DOS命令代替文件所有者和创建时间吗?

  15. 15

    我可以使用wget递归下载所有文件,而不下载其实际内容吗?

  16. 16

    我可以使用 Gimp 擦除所有照片元数据吗?

  17. 17

    我可以使用组合框中的所有项目遍历字典吗?

  18. 18

    我可以使用@Value批注在ServletContextListener中获取系统属性吗

  19. 19

    我可以使用WebDriver获取元素的CSS属性“填充”吗?

  20. 20

    我可以使用Powershell获取json中属性的层次结构路径吗?

  21. 21

    我可以使用Linq以比这更优雅的方式从集合中获取属性吗?

  22. 22

    我可以使用带有所有属性(位置、法线、texCoord)的顶点缓冲区的单个顶点索引吗

  23. 23

    我可以使用Jquery将自定义属性插入HTML元素吗?

  24. 24

    我可以使用我所有的RAM来存储应用程序数据吗?

  25. 25

    我可以使用Microsoft Graph API在我所属的MS Teams中的所有团队/组中搜索文件吗

  26. 26

    我可以使用我所有的RAM来存储应用程序数据吗?

  27. 27

    我可以使用输出变量获取值吗?

  28. 28

    我可以使用php从localstorage获取数据吗

  29. 29

    我可以使用两个溢出属性吗?

热门标签

归档