Tengo una pequeña aplicación que debería obtener dos valores de precio de los elementos de un sitio web. Esto se logra iterando sobre el .textContent
de los dos querySelectors (cardStartBidValueString y cardCurrentBidValuesString). Luego también obtengo todos los elementos con un selector CSS específico (cardBg).
Lo que quiero hacer es verificar si el precio de inicio y el precio de oferta actual son ambos < userInputBidPrice (que es el límite de lo que un usuario quiere ofertar) y si esto es cierto, luego cambie el color de fondo de ese artículo para que el el usuario puede ver directamente una oferta potencial. En suma son 20 elementos que incluyen esos dos precios. Básicamente, quiero cambiar el fondo de todos los elementos para los cuales la condición anterior es verdadera.
Lamentablemente no funciona. si digo cardBg[i].style['background-color'] = '#0311c3'
entonces solo cambia el color cuando CurrentBidPrice es < userInputBidPrice y si lo cambio a cardBg[x].style['background-color'] = '#0311c3'
luego colorea todos los elementos si el precio de oferta inicial es < precio de oferta de entrada de usuario
Por alguna razón, no está comprobando si ambas condiciones son verdaderas.
Este es mi código:
function deals() { let userInputBidPrice = prompt('Set max Bid Price:'); let cardCurrentBidValuesString = document.querySelectorAll('.auction > .auctionValue:nth-child(2) > .currency-coins.value'); let cardStartBidValueString = document.querySelectorAll('.auction > .auctionStartPrice.auctionValue > .currency-coins.value'); let cardBg = document.querySelectorAll('.rowContent.has-tap-callback'); for (let i = 0; i < cardCurrentBidValuesString.length; i++) { cardsCurrentBidPrice = cardCurrentBidValuesString[i].textContent.toString().split(',').join(''); if (cardsCurrentBidPrice === '---') { cardsCurrentBidPrice = 0; } parsedCardsCurrentBidPrice = parseInt(cardsCurrentBidPrice); for (let x = 0; x < cardStartBidValueString.length; x++) { cardsStartBidPrice = cardStartBidValueString[x].textContent.toString().split(',').join(''); if (cardsStartBidPrice === '---') { cardsStartBidPrice = 0; } parsedCardsStartBidPrice = parseInt(cardsStartBidPrice); } if (parsedCardsCurrentBidPrice < parseInt(userInputBidPrice) && parsedCardsStartBidPrice < parseInt(userInputBidPrice)) { cardBg[i].style['background-color'] = '#0311c3'; } } } deals();