我的长函数具有以下条件:

if ( shipSet == true ) {
    $("#" + shippingFields[i]).style.background = 'gray';
    $("#" + shippingFields[i]).className = 'optional';
} else {
    $("#" + shippingFields[i]).removeAttribute('style');
    $("#" + shippingFields[i]).removeClass('optional');
}


style行可以正常工作,无论是true还是false,但是classNameremoveClass行不起作用。有什么建议?我只是没有正确使用它们吗?

最佳答案

由于("#" + 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()设置元素的样式。

10-06 11:58