#javascript #html #css #for-loop #if-statement
Вопрос:
У меня есть небольшое приложение, которое должно получать два значения цен от элементов на веб-сайте. Это достигается путем перебора .textContent
двух селекторов запросов (cardStartBidValueString и cardCurrentBidValuesString). Затем я также получаю все элементы с определенным селектором CSS (cardBg).
Что я хочу сделать, так это проверить, соответствуют ли начальная цена и текущая цена предложения В сумме есть 20 элементов, которые включают эти две цены. Поэтому в основном я хочу изменить фон всех элементов, для которых верно приведенное выше условие.
К сожалению, это ни работает. если я скажу cardBg[i].style['background-color'] = '#0311c3'
, что он меняет цвет только тогда, когда текущая цена lt; userInputBidPrice, и если я изменю ее на cardBg[x].style['background-color'] = '#0311c3'
, то она окрашивает весь элемент, если начальная цена
По какой-то причине он не проверяет, верны ли оба условия.
Это мой код:
function deals() { let userInputBidPrice = prompt('Set max Bid Price:'); let cardCurrentBidValuesString = document.querySelectorAll('.auction gt; .auctionValue:nth-child(2) gt; .currency-coins.value'); let cardStartBidValueString = document.querySelectorAll('.auction gt; .auctionStartPrice.auctionValue gt; .currency-coins.value'); let cardBg = document.querySelectorAll('.rowContent.has-tap-callback'); for (let i = 0; i lt; cardCurrentBidValuesString.length; i ) { cardsCurrentBidPrice = cardCurrentBidValuesString[i].textContent.toString().split(',').join(''); if (cardsCurrentBidPrice === '---') { cardsCurrentBidPrice = 0; } parsedCardsCurrentBidPrice = parseInt(cardsCurrentBidPrice); for (let x = 0; x lt; cardStartBidValueString.length; x ) { cardsStartBidPrice = cardStartBidValueString[x].textContent.toString().split(',').join(''); if (cardsStartBidPrice === '---') { cardsStartBidPrice = 0; } parsedCardsStartBidPrice = parseInt(cardsStartBidPrice); } if (parsedCardsCurrentBidPrice lt; parseInt(userInputBidPrice) amp;amp; parsedCardsStartBidPrice lt; parseInt(userInputBidPrice)) { cardBg[i].style['background-color'] = '#0311c3'; } } } deals();
Комментарии:
1. Нет необходимости вызывать
toString()
результатtextContent
: это всегда строка.2. Вы отлаживали свой код в devtools? Пройдитесь по нему за один шаг и посмотрите на переменные? Оцените части состояния и т.д. когда линия была достигнута, чтобы понять, почему она делает то, что делает? Что ты нашел?
3. Пожалуйста, приведите пример HTML, на котором выполняется этот код.