我在长函数中有以下条件:
if ( shipSet == true ) {
$("#" + shippingFields[i]).style.background = 'gray';
$("#" + shippingFields[i]).className = 'optional';
} else {
$("#" + shippingFields[i]).removeAttribute('style');
$("#" + shippingFields[i]).removeClass('optional');
}
style
行可以正常工作,无论是真还是假,但className
和removeClass
行无法正常工作。有什么建议?我只是没有正确使用它们吗?
答案 0 :(得分:4)
由于("#" + shippingFields[i])
返回一个jQuery对象。
您需要使用addClass()和removeClass()代替:
if ( shipSet == true ) {
$("#" + shippingFields[i]).css('background','gray');
$("#" + shippingFields[i]).addClass('optional');
} else {
$("#" + shippingFields[i]).removeAttr('style');
$("#" + shippingFields[i]).removeClass('optional');
}
此外,您可以使用css()设置元素的样式。
答案 1 :(得分:2)
您应该使用addClass
(将类添加到元素)和removeClass
(从元素中删除类):
$("#" + shippingFields[i]).addClass('optional');
$("#" + shippingFields[i]).removeClass('optional');
答案 2 :(得分:1)
if ( shipSet == true ) {
$("#" + shippingFields[i]).css('background','gray');
$("#" + shippingFields[i]).addClass('optional');
} else {
$("#" + shippingFields[i]).removeAttr('style');
$("#" + shippingFields[i]).removeClass('optional');
}
答案 3 :(得分:1)
尝试此操作,添加类名始终使用$("#attributeID").addClass('ClassName');
if ( shipSet == true ) {
$("#" + shippingFields[i]).css('background','gray');
$("#" + shippingFields[i]).addClass('optional');
} else {
$("#" + shippingFields[i]).removeAttr('style');
$("#" + shippingFields[i]).removeClass('optional');
}