Alors que the .filter()
method dans @ la réponse de Domenic est une bonne approche, je serais mettre en œuvre un peu différemment.
Exemple:http://jsfiddle.net/patrick_dw/mjuyk/
$('input:text').filter(function() {
return !$.trim(this.value);
});
- Vous devez spécifier
input:text
. Sinon jQuery doit observer chaque élément dans le DOM pour voir si c'est type='text'
. (See the docs.)
- Parce que ce sont des entrées de texte, il est plus rapide d'utiliser
this.value
que $(this).val()
.
- Inutile d'obtenir la propriété
length
puisqu'une chaîne vide est falsey. Il suffit donc d'utiliser l'opérateur !
.
Ou vous pouvez utiliser l'inverse de .filter()
, qui est the .not()
method:
Exemple:http://jsfiddle.net/patrick_dw/mjuyk/1/
$('input:text').not(function() {
return $.trim(this.value);
});
En outre, vous pouvez créer un sélecteur personnalisé comme ceci:
Exemple:http://jsfiddle.net/patrick_dw/mjuyk/2/
$.extend($.expr[':'], {
novalue: function(elem, i, attr){
return !$.trim(elem.value);
}
});
$('input:text:novalue')
+1 m'a devancé. ;) – Stephen
Oui, cela devrait fonctionner. – RussellUresti