是否可以在选择器中进行修剪?

我想计算我的表格中所有空的输入。 对于空,我的意思是在修剪其值后它的值为空(如果用户插入空白也是空的)。 这个jquery计算它们,但它不包括修剪:

$(':text').filter('[value=""]').length 

有什么jquery可用于在选择器中修剪?

谢谢

 $(':text').filter(function () { return $.trim($(this).val()).length === 0; }); 

虽然.filter()的答案中的.filter()方法是一个很好的方法,但我的实现方式有点不同。

示例: http //jsfiddle.net/patrick_dw/mjuyk/

 $('input:text').filter(function () { return !$.trim(this.value); }); 
  • 您应该指定input:text 。 否则,jQuery需要观察DOM中的每个元素,看它是否为type='text' 。 ( 参见文档。 )
  • 因为这些是文本输入,所以使用this.value$(this).val()更快。
  • 由于空字符串是假的,因此无需获取length属性。 所以只需使用! 运营商。

或者你可以使用.filter()的逆,这是.filter() .not()方法 :

示例: http //jsfiddle.net/patrick_dw/mjuyk/1/

 $('input:text').not(function () { return $.trim(this.value); }); 

此外,您可以创建这样的自定义选择器:

示例: http //jsfiddle.net/patrick_dw/mjuyk/2/

 $.extend($.expr[':'], { novalue: function(elem, i, attr){ return !$.trim(elem.value); } }); $('input:text:novalue')