2011-12-06 13 views
8

Para mis necesidades utilizojQuery cada entrada hasClass

$('#form :input').each(function(i) { 
    if (!$(this).hasClass('donot')) { 
     $(this).attr('disabled', 'disabled'); 
    } 
}); 

¿hay una mejor manera a no utilizar la condición if para comprobar si la entrada tiene la clase 'donot'?

Gracias por su ayuda ...

Chris

Respuesta

8
$('#form input:not(.donot)').each(function(i) { 
    $(this).attr('disabled', 'disabled'); 
}); 

Y hay que ir :-D

Docs for :not() selector


O también se puede hacer:

$('#form input').not('.donot').each(function(i) { 
    $(this).attr('disabled', 'disabled'); 
}); 

Docs for .not()

+0

Elegant! Gracias – Chris

+0

@ user1080344 no hay problema^_^feliz de ayudar :-D – Neal

2

Pruebe esto y también que ni siquiera necesita cada bucle para hacer esto.

$('#form input:not(.donot)').attr('disabled', 'disabled'); 
+0

'+ 1' Ja! eso es verdad :-P Ni siquiera pensé en eso. – Neal

+0

Esta es la respuesta correcta. – harpo