jQuery中数据的自定义选择器不起作用
Posted
技术标签:
【中文标题】jQuery中数据的自定义选择器不起作用【英文标题】:Custom selector for data in jQuery don't work 【发布时间】: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 已经有一个选择器:disabled 【参考方案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
【讨论】:
以上是关于jQuery中数据的自定义选择器不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在codeigniter中使用jquery的日期选择器不起作用