Javascript 如何向jQuery中的特定元素类型添加函数?
我能做到Javascript 如何向jQuery中的特定元素类型添加函数?,javascript,jquery,Javascript,Jquery,我能做到 jQuery.fn.validate = function(options) { var defaults = { validateOPtions1 : '', validateOPtions2 : '' }; var settings = $.extend({}, defaults, options); return this.each(function() { // you validation c
jQuery.fn.validate = function(options) {
var defaults = {
validateOPtions1 : '',
validateOPtions2 : ''
};
var settings = $.extend({}, defaults, options);
return this.each(function() {
// you validation code goes here
});
};
但这将使validate()对每个元素都可用。我可以对任何元素执行此操作:$('some selector').validate()
有没有一种方法可以让它只对表单元素可用?例如:$('.mySpecialFormClass').validate()?答案很简单:
$('form').validate();
选择器在jQuery中的工作方式有点像这样(就像在CSS中一样)
有关选择器的更多详细信息,请参阅。如果您真的不想让该函数对除
标记以外的任何对象起作用,则必须让该函数引发异常
jQuery.fn.formsOnly = function() {
return this.each(function() {
if (!$(this).is('form')) throw "Forms only!";
// whatever
});
};
我想使.validate()对除“form”类型的元素之外的任何元素都不可用。因此,如果我调用,$('div').validate(),就会抛出一个“未定义函数”。例如,.val()(我相信)只适用于表单元素(输入、选择、文本区域)。@Chad事实并非如此-您可以使用
val()
处理任何需要的内容。当然,这是行不通的,但框架并没有让我们无法调用它。在这种情况下,我同意波蒂的答案。
jQuery.fn.formsOnly = function() {
return this.each(function() {
if (!$(this).is('form')) throw "Forms only!";
// whatever
});
};