javascript – Jquery选择具有数据属性公用名的所有元素

参见英文答案 > how do I find elements that contain a data-* attribute matching a prefix using jquery                                    1个
我正在尝试使用jQuery来选择表单中具有类似名称的数据属性的所有输入.

这是我的表格:

<form id = "myForm">
  <input name="name" data-valid-presence=true >
  <input name="age" data-valid-biggerThan="18" >
  <input name="email[0]" data-valid-email=true >
  <input name="email[1]" data-valid-email=true >
</form>

我的jQuery选择器是:

var inputs = jQuery("#myForm").find("input[data-valid-email],[data-valid-length],[data-valid-presence], [data-valid-biggerThan]");

我正在寻找一种方法来选择所有具有data-valid- *的输入,而不必像这样逐个找到它们.

有任何想法吗?

最佳答案
你可以使用jQuery.filter:

var inputs = $('form').find('input').filter(function() {
    var matched = false;
    $.each(this.attributes, function(attr) {
        if ( matched ) return;
        matched = /^data-valid/.test(this.name);
    });
    return matched;
});

转载注明原文:javascript – Jquery选择具有数据属性公用名的所有元素 - 代码日志