jQuery-类的仅原型元素
jQuery - prototype only elements of class
大家好。我想知道是否有可能只原型化某些类、类型、名称等的元素
例如:
$.fn.showRequiredError = function(){
$(this).after('<p class="error">This field is required</p>');
});
如果我调用$("#xxx").showRequiredError();
现在我想知道是否可以将jquery的功能"扩展"到类的元素。必需的
例如,它看起来是这样的:
$(".required").fn.showRequiredError = function(){
$(this).after('<p class="error">This field is required</p>');
});
我可以调用ONLY$(".required").showRequiredError()
如果我调用$(".somethingElse").showRequiredError();它不会有任何作用。
希望你能理解。
附言:这种方法会对性能产生影响吗?
您可以这样做,尽管这看起来有点奇怪,但通常是使用插件的程序员决定它将对哪些元素执行操作。
你可以使用filter
:
$.fn.showRequiredError = function(){
this.filter(".required").after('<p class="error">This field is required</p>');
// ^^^^^^^^^^^^^^^^^^^^--- the new bit
// See "side note" below
return this;
};
现在,插件所做的第一件事就是过滤它所调用的jQuery对象的内容,使它们只包括.required
元素。
它对性能的影响非常小,无需担心。
示例:
$.fn.showRequiredError = function(){
this.filter(".required").after('<p class="error">This field is required</p>');
// ^^^^^^^^^^^^^^^^^^^^--- the new bit
// See "side note" below
return this;
};
$("div").showRequiredError();
.required {
color: blue;
}
<div class="foo">This doesn't have 'required'</div>
<div class="foo required">This does have 'required'</div>
<div class="required">So does this</div>
<div>But not this</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
旁注1:请注意,在对jQuery插件的调用中,this
是一个jQuery对象,因此编写$(this)
是多余的(以及运行时的一点点额外工作)。
旁注2:除非您有其他必须返回的东西,否则按照惯例,jQuery插件应该返回this
,用于链接。
在这种情况下,我根本不理解选择器的用法。只需为jQuery对象原型添加函数:
$.showRequiredError = function(){
$(".required").after('<p class="error">This field is required</p>');
};
$.showRequiredError()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="required">
<input class="not-required">
所有jQuery对象都有所有的方法,因此您不能限制在任何给定的jQuery对象上可以调用什么。
但是,您可以在方法内部编写代码来决定是否执行任何操作。因此,您可以检查jQuery对象中的元素是否是正确类型的元素,如果不是,则不执行任何操作。
或者,如果您真的不操作jQuery对象中的DOM元素,因为您已经知道它们是什么,那么您可能需要像$.showRequiredError
这样的静态jQuery方法。
$.showRequiredError = function(){
$(".required").after('<p class="error">This field is required</p>');
});
你可以称之为$.showRquiredError()
。
- 原型js 如何使定期更新程序隐藏基于ajax响应的类元素
- 挂钩文档.使用函数原型创建元素
- 手动呈现原型JS元素对象
- 原型JavaScript Event.observe-如何观察可能存在或不存在的元素
- jQuery-类的仅原型元素
- 在不丢失原型的情况下返回函数上的元素
- 原型JS不删除选择元素
- 元素原型作为字符串
- JavaScript 原型 - 覆盖某些元素的 .scrollTo
- 将原型继承到 JavaScript 中的所有子元素
- 调用原型函数的元素是什么
- JavaScript 原型将方法附加到 DOM 元素
- 创建元素并使用继承的原型函数在加载时调用,而不是在单击时调用
- 原型:观察2个元素并传递不同的参数
- 如何迭代html元素原型的属性名称
- 多个元素原型不起作用
- 将click函数绑定到具有原型的锚点标记内的所有元素
- 原型:选择具有多个类的元素
- 更改原型元素设置范围
- Javascript - getOwnPropertyDescriptor &DOM原型元素的definePropert