javascript - HTML5 数据属性中的通配符

标签 javascript jquery html sizzle

是否可以在属性名称中使用通配符查找所有带有 jQ​​uery 的 DOM 元素?

考虑以下 HTML:

<input 
     id="val1" 
     type="text" 
     data-validate-required 
     data-validate-minlength="3" 
     data-validate-email />

我想要实现的是找到所有属性名称以 data-validate- 开头的 dom 节点

据我了解通配符描述here关注属性的“值”。

这样做的原因是 - 我想找出哪些元素应该被验证 - 然后找出哪些验证参数(如 -email)起作用。

谢谢

最佳答案

您可以创建自定义伪类,例如将属性名称与正则表达式匹配:http://jsfiddle.net/hN6vx/ .

jQuery.expr.pseudos.attr = $.expr.createPseudo(function(arg) {
    var regexp = new RegExp(arg);
    return function(elem) {
        for(var i = 0; i < elem.attributes.length; i++) {
            var attr = elem.attributes[i];
            if(regexp.test(attr.name)) {
                return true;
            }
        }
        return false;
    };
});

用法:

$(":attr('^data-')")

关于javascript - HTML5 数据属性中的通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13222334/

相关文章:

javascript - 将 Bootstrap 行和列与其对应的字段对齐

javascript - 通过 javascript 临时更改 css

javascript - chart.js 中条形图中的交替条未标记

javascript - jQuery Mobile 多重过滤方法 - 文本/输入和选择/下拉菜单

javascript - Primefaces 性能问题

html - Unity WebGL构建,如何为移动浏览器设置 Canvas 大小?

javascript - 菱形 View react native

循环中的 Jquery 动画函数不一起运行

javascript - 将数组中的数据填充到 html 表中

javascript - 如何将html表格的文本复制到剪贴板?