Подскажите пожалуйста, почему если поставить два блока то условие не проходит проверку? Первый проходит правильно, второй всегда проходит под тем что он больше минимального балла, хотя там там стоит число меньше и через консоль показывает что меньше
(function () {
var testResultsSvg = document.querySelectorAll('.js-test-result-svg')
if( testResultsSvg.length <1) {
return
}
testResultsSvg.forEach(function (testResultSvg){
var testResultColumns = testResultSvg.querySelectorAll('.test-result-column')
var mainElement = testResultSvg.closest('.test-result')
var testCurrent = mainElement.querySelector('.js-test-result-current').innerHTML
var testMinimum = mainElement.querySelector('.js-test-result-minimum').innerHTML
var testPossible = mainElement.querySelector('.js-test-result-possible').innerHTML
console.log(testCurrent , testMinimum , testPossible)
if(testCurrent < testMinimum) {
console.log('less')
testResultSvg.classList.add('test-result-svg-red')
} else if (testCurrent >= testMinimum) {
console.log('more', testCurrent, testMinimum)
testResultSvg.classList.add('test-result-svg-green')
}
var testLevel = (testCurrent*100) / testPossible
testLevel = Math.floor((14 * testLevel) / 100)
for (var i = 0; i < testLevel; i++) {
testResultColumns[i].style.opacity = 1
}
})
})();
уточните, что за блоки?
второй блок у вас всегда выполняется, потому что он строго НЕ первый блок, может вам надо
if (testCurrent < testMinimum) {} else if (testCurrent > testMinimum) {} else {},
а у вас (testCurrent >= testMinimum)
Ну и конечно перед сравниванием - переведите текст в числа
const testCurrent = parseInt(mainElement.querySelector('.js-test-result-current').innerHTML)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей