2013-07-11 49 views
0

我有設置了data('disabled', true)的DOM中的元素,我想創建自定義選擇器來選擇這些元素。我試試這個:jQuery中的數據自定義選擇器不起作用

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')。任何人都知道爲什麼。

+2

的jQuery已經擁有了選擇[:禁用](HTTP ://api.jquery.com/disabled-selector/) –

回答

1

看起來這是因爲jQuery已經有一個名爲選擇:禁用,如果你重新命名它,它工作正常

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

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

演示:Fiddle