измените стиль, если выполняются два условия

#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, на котором выполняется этот код.