0

我想知道 jQuery 中是否有一个更通用的函数,它的作用类似于 addClass() 但与 dom className 属性不同。

我有一个存储验证规则标签的数据字段,如下所示:

<input data-validation="required number positive">,

每个标签指定不同类型的验证。我希望能够像这样修改验证标签:

$('input').addToken('data-validation', 'date future_date'); // two rules added here

或者

$('input').removeToken('data-validation', 'required');

到目前为止,我最好的解决方案是使用 $.fn._addClass 并将其复制到一个新函数中,但是,如果可能的话,我不想重新发明轮子。

在类似的方向上,据我所知,CSS2 有一个特殊的属性选择器,它适用于这种以空格分隔的值,适用于任何属性,而不仅仅是类名:

E[foo~="warning"] 匹配任何“foo”属性值为空格分隔值列表的 E 元素,其中一个值正好等于“warning”。

PS。也许比我有更高声誉的人可以添加标签“空格分隔值”,我认为这可能是一个有用的标签。谢谢你。

4

1 回答 1

0

jQuery 提供了一个data()函数,使您可以访问data-*元素上定义的所有内容,因此您可以:

//set value
$('input').data('validation','date future_date');

//get values
var validations = $('input').data('validation');
于 2013-06-18T15:26:55.563 回答