En el siguiente código, he vinculado algunos js/jQuery a elementos en mi html que deberían explicarse por sí mismos. He registrado en la consola cada declaración if else para ver cuál es el problema y parece estar atascado en la primera declaración if.
function toggleDisplay() { var icon = document.getElementById("togglebutton"); var night_icon = 'assets/Feed_Toggle_Night.png' var day_icon = 'assets/Feed_Toggle_Day.png' $("displaytog").on("click", () => { if (icon.src == night_icon) { icon.src = day_icon; console.log("success1"); }else { icon.src = night_icon; console.log("success2"); } }) } toggleDisplay(); <displaytog> <img src="assets/Feed_Toggle_Night.png" id="togglebutton"/> </displaytog>Está asignando icon.src a night_icon por accidente. cambie su condición para verificar si incluyen alguna de sus rutas. la razón por la que necesita usar includes es porque el src es una ruta completa mientras que sus condiciones usan rutas relativas. El src se ve así: "https://fiddle.jshell.net/_display/assets/Feed_Toggle_Day.png"
if (icon.src.includes(night_icon))