我定义了此功能,该功能检查输入字段是否为空
function hasValue() {
if ( !!$.trim( $(this).val() ) )
return true;
}
它只适合过滤jQuery集合
$('#form').find( '.email' ).filter( hasValue );
但是我也想重用
hasValue()
函数来切换一个类。$('.input').change( function () {
var empty = hasValue().apply( $(this) ); //throws an error
// var empty = $(this).hasValue(); //doesn't work either
$('#box').find('.required-tmp').toggleClass('required', empty );
});
任何帮助表示赞赏。
最佳答案
Juste通过此申请。而且不要在之前执行():
hasValue.apply(this);
如果要更好地使用函数,则必须接受一个元素作为参数,这样使用
this
并不是一个好的模式。首选在参数中传递元素function hasValue(elem) {
return !!$.trim($(elem).val());
}
然后map的用法是相同的:
$('#form').find( '.email' ).filter( hasValue );
和:
$('.input').change( function () {
var empty = hasValue(elem); //throws an error
$('#box').find('.required-tmp').toggleClass('required', empty );
});