我查看了jQuery插件网站,该网站教我如何编写基本插件:
(function( $ ){
$.fn.maxHeight = function() {
var max = 0;
this.each(function() {
max = Math.max( max, $(this).height() );
});
return max;
};
})( jQuery );
然后,div可以使用maxHeight
方法,如下所示:
var tallest = $('div').maxHeight(); // Returns the height of the tallest div
但我想只有textarea有maxHeight功能,但不是div。我怎么能这样做?
答案 0 :(得分:1)
你可以......
this.filter('textarea')
如果您对返回的集合执行each()
,则只会迭代选定的textarea
元素。
答案 1 :(得分:0)
检查/保存高度之前,检查以确保元素是textarea。
this.each(function() {
if(this.tagName.toLowerCase() === "textarea") {
max = Math.max( max, $(this).height() );
}
});
jQuery插件不为某些元素提供函数,它们为jQuery对象提供函数以处理一组选定的元素。最好的解决方案是尽可能保持通用,只在需要时调用$("textarea").maxHeight()
。您没有对插件中的textarea
做任何特定的操作,如果您现在保留它,如果$('div').maxHeight()
成为必需,您将来不需要对其进行更改用例。