2

假设我有这样的元素:

<h1 data-myapp-title>Title</h1>
<p data-myapp-description>Description</p>

如何使用 jQuery 按属性名称“data-myapp-*”过滤它们?

4

1 回答 1

3

不是防弹的,但这应该让你接近。我将其放入选择器以使其更容易一些,但这是一般前提:

  • 返回具有与选择器匹配的属性的任何元素
  • 允许您指定通配符或正则表达式模式。(简单的测试有效,但可能应该做更多)

(function($){
    $.expr[':']['attr'] = function(obj,index,meta,stack){
        var re = new RegExp(meta[3]), m = false;
        for (var a = 0; a < obj.attributes.length; a++){
            m |= re.test(obj.attributes[a].name);
        }
        return m;
    };
})(jQuery);

$(':attr(data-myapp-*)').css('color','#f0f');

jsFiddle

于 2012-10-08T20:31:41.643 回答