<table class="table is-striped is-narrow is-hoverable is-fullwidth"> <thead> <tr> <th>symbol</th> <th>doji dragon</th> <th>doji grave</th> <th>timeframe</th> </tr> </thead> <tbody id="myTable"> </tbody> var ref12 = collection(db,"doji4h"); const querySnapshot1 = await getDocs(ref12); querySnapshot1.forEach((doc2) => { let data2 = doc2.data(); let row = `<tr> <td>${data2.symbol}</td> <td bgcolor=greencolor>${data2.doji_dragon}</td> <td bgcolor=redcolor>${data2.doji_grave}</td> <td>${data2.timeframe}</td> </tr>`; let table = document.getElementById('myTable2') table.innerHTML += row }); let dojidragoncolor= data2.doji_dragon; let dojigravecolor= data2.doji_grave; if (dojidragoncolor === Bullish){ greencolor="green";} else{ greencolor="white"; } if (dojigravecolor === Bearish){ redcolor="red";} else{ redcolor="white"; }Quiero cambiar el color de data2doji_dragon y data2.doji_grave. rojo y verde según cadena alcista o bajista provienen de firebase
todos los datos son verdes ahora. hay un problema de notación que tengo parece
Intenta cambiar dos cosas.
redcolor y greencolor antesEn el momento en que los estás creando después del tiempo que quieres leerlos. Mueva las declaraciones "if (doji..." antes de "let row..."
Actualmente estás usando
bgcolor = greencolorSi no recuerdo mal, el navegador lo leerá como una cadena:
bgcolor = "greencolor"Y maneja ese color desconocido "colorverde" ignorando la última parte, de modo que se comporta como si hubieras escrito:
bgcolor = "green"(Como el primer intento no tuvo éxito, agregué información adicional en la celda de la tabla mostrada, con fines de diagnóstico).
let data2 = doc2.data(); let dojidragoncolor = data2.doji_dragon; let dojigravecolor = data2.doji_grave; if (dojidragoncolor === Bullish) { greencolor = "green"; } else { greencolor = "white"; } if (dojigravecolor === Bearish) { redcolor = "red"; } else { redcolor = "white"; } let row = ` <tr> <td bgcolor="${greencolor}">${data2.doji_dragon} ${greencolor}</td> <td bgcolor="${redcolor}">${data2.doji_grave} ${redcolor}</td> </tr>`;let data2 = doc2.data();// it have to be after this line const dojidragoncolor= data2.engulfing_bullish; const dojigravecolor= data2.engulfing_bearish; let bullcolor ="" let bearcolor = "" if (dojidragoncolor == "Bullish"){ bullcolor="green";} else{ bullcolor="white"; } if (dojigravecolor == "Bearish"){ bearcolor="red";} else{ bearcolor="white"; } console.log(bullcolor); console.log(bearcolor); let row = `<tr> <td>${data2.symbol}</td> <td bgcolor=${bullcolor}>${data2.engulfing_bullish}</td> <td bgcolor=${bearcolor}>${data2.engulfing_bearish}</td> <td>${data2.timeframe}</td> </tr>`; let table = document.getElementById('myTable2')