0

我在 DOM 中有已设置的元素,data('disabled', true)我想创建自定义选择器来选择这些元素。我试试这个:

jQuery.extend(jQuery.expr[':'], { 
    disabled: function(a,i,m) {
        return $(a).data('disabled') === true;
    }
});

还有这个:

jQuery.expr[':'].disabled = function(a,i,m) {
    return $(a).data('disabled') === true;
};

我也试试!!$(a).data('disabled');

但它不起作用,$('.parent :disabled')什么也不返回,即使我有里面的.parent元素data('disabled')。任何人都知道为什么。

4

1 回答 1

1

看起来是因为 jQuery 已经有一个名为 :disabled 的选择器,如果重命名它就可以正常工作

jQuery(function($){
    jQuery.extend(jQuery.expr[':'], { 
        disabled1: function(a,i,m) {
            console.log('x',arguments)
            return $(a).data('disabled') === true;
        }
    });

    $('.parent :disabled1').hide()
})

演示:小提琴

于 2013-07-11T09:02:18.593 回答