具有以字符串开头的属性的元素的 jQuery 选择器

2024-03-27

我需要选择所有具有以给定前缀开头的属性的元素 - 注意我说的是属性名称,not价值。例如:

<div data-abc-name="value">...</div>
<a href="..." data-abc-another="something">...</a>
<span data-nonabc="123">...</span>

在上面的 HTML 中,我需要获取具有以下属性开头的所有元素data-abc-- 那就是diva.

我怎样才能做到这一点?


这是我的解决方案 -Fiddle https://jsfiddle.net/bvx9eyxg/。您必须创建自己的 jquery 选择器。

jQuery.extend(jQuery.expr[':'], {
    attrStartsWith: function (el, _, b) {
        for (var i = 0, atts = el.attributes, n = atts.length; i < n; i++) {
            if(atts[i].nodeName.toLowerCase().indexOf(b[3].toLowerCase()) === 0) {
                return true; 
            }
        }

        return false;
    }
});

//e.g:
$('a:attrStartsWith("data-abc")').html('hello');
$('div:attrStartsWith("data-abc")').html('hello');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有以字符串开头的属性的元素的 jQuery 选择器 的相关文章

随机推荐