Premetto che has() applicato ad un input è un nonsense, come può un tag input contenere un elemento?
Se vuoi disabilitare un pulsante contenuto in quel div (a cui risali da uno span-figlio), il codice diventa:
codice:
var div=$('.redBackground').parent();
$( 'input[value="Prec"]', div ).attr('disabled',true);
Come vedi ho identificato prima il div genitore (sia dello span che del button) e poi l'ho usato come scope per individuare univocamente il pulsante figlio del div (passando la variabile "div" al motore di selezione di jQuery).
Lo script si potrebbe riscrivere, in forma contratta, con la seguente sintassi:
codice:
$( 'input[value="Prec"]', $('.redBackground').parent() ).attr('disabled',true);