У меня есть следующее условие в длинной функции:
if ( shipSet == true ) {
$("#" + shippingFields[i]).style.background = 'gray';
$("#" + shippingFields[i]).className = 'optional';
} else {
$("#" + shippingFields[i]).removeAttribute('style');
$("#" + shippingFields[i]).removeClass('optional');
}
строки style
работают нормально, правда или ложно, но className
и removeClass
не работают. Какие-либо предложения? Я просто не использую их правильно?
Поскольку ("#" + 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() для установки стилей ваших элементов.
Вы должны использовать addClass
(для добавления класса к элементу) и removeClass
(для удаления класса из элемента):
$("#" + shippingFields[i]).addClass('optional');
$("#" + shippingFields[i]).removeClass('optional');
Попробуйте это, для добавления имени класса всегда используйте $("#attributeID").addClass('ClassName');
if ( shipSet == true ) {
$("#" + shippingFields[i]).css('background','gray');
$("#" + shippingFields[i]).addClass('optional');
} else {
$("#" + shippingFields[i]).removeAttr('style');
$("#" + shippingFields[i]).removeClass('optional');
}
if ( shipSet == true ) {
$("#" + shippingFields[i]).css('background','gray');
$("#" + shippingFields[i]).addClass('optional');
} else {
$("#" + shippingFields[i]).removeAttr('style');
$("#" + shippingFields[i]).removeClass('optional');
}
$("#" + shippingFields[i]).style.
должно быть$("#" + shippingFields[i])[0].style.
, Вы должны понимать разницу между элементом DOM и объектом jQuery.className
- это свойство элемента DOM, а не функция jQuery. Вместо этого вы должны использовать функцию jquery css:$("#" + shippingFields[i]).css("background", "gray");