You can use the CSS property "content" to change the src of the image like:
img {
content: url();
}
This is probably the simplest way. If you use background-image:url() you also have to specify the width and height of the image in the same selector like:
Basically for the JS I just created event listeners for all the buttons or inputs, and every time one of them changed, I would attempt to calculate it in a separate function. If I could calculate it, great, if not, I would just keep the results at $0.00. I can include a link to my github repo and you can check out the script.js file there: https://github.com/dev-eli/tip-splitter/blob/main/script.js
My code isn't as readable as yours I think but it might be simpler, up to you to decide.
I liked how you included the form validation saying numbers only,I thought that was a nice touch. I accidentally restricted the input of non numbers by setting the value of the element to the value of the event and that would remove all the non numbers, which kind of makes it confusing.