Since ("#" + shippingFields[i])
return a jQuery object.
You need to use addClass() and removeClass() instead:
if ( shipSet == true ) {
$("#" + shippingFields[i]).css('background','gray');
$("#" + shippingFields[i]).addClass('optional');
} else {
$("#" + shippingFields[i]).removeAttr('style');
$("#" + shippingFields[i]).removeClass('optional');
}
Also, you can use css() to set the styles of your elements.