【问题标题】:Custom selector for data in jQuery don't workjQuery中数据的自定义选择器不起作用
【发布时间】:2013-07-09 11:25:29
【问题描述】:

我在 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')。任何人都知道为什么。

【问题讨论】:

标签: jquery jquery-selectors custom-selectors


【解决方案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()
})

演示:Fiddle

【讨论】:

    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    相关资源
    最近更新 更多