im new in JS. How to add font color dependency based on displayed text in Javascript?
There may be several statuses on the displayed page (FREE, RESERVED, SOLD), I would like the dependency to work on any number of displayed statuses on the page. Tried to get innerText and textContent to display in console, but the fetch only works for single document.querySelector and not document.querySelectorAll here the console displays undefined but in Nodelist in console.log is correct (3), and the innerText in individual nodes displays correctly: first is FREE, second is RESERVED, and third is SOLD
<div >
<ul >
<li ></li>
<div >FREE
</div>
</li>
<li ></li>
<div >RESERVED
</div>
</li>
<li ></li>
<div >SOLD
</div>
</li>
</ul>
</div>
<script>
var status = document.querySelectorAll('.status');
// Nodelist in console.log is correct (3), and the innerText in individual nodes displays correctly: first is FREE, second is RESERVED, and third is SOLD
// How to add font color dependency based on innerText??
// status FREE with green color font
// status RESERVED with orange color font
// status SOLD with redcolor font
</script>
CodePudding user response:
// get all statuses
const statuses = document.querySelectorAll('.status')
// define a color for each status
const colors = {
FREE: 'yellow',
RESERVED: 'blue',
SOLD: 'red'
}
statuses.forEach(status => {
// get timmed text
const text = status.textContent.trim()
// get the color
const color = colors[text]
// set the color
status.style.color = color
})
<div >
<ul >
<li >
<div >FREE
</div>
</li>
<li >
<div >RESERVED
</div>
</li>
<li >
<div >SOLD
</div>
</li>
</ul>
</div>
