Estoy tratando de pasar el valor de javascript a html pero no puedo hacerlo, usé return en la función js pero probablemente no correctamente
function add() { var a3 = document.getElementById('a').value; return a3; } var a5 = add(); document.getElementById("greeting").innerHTML = a5; <form> a: <input type="number" name="a" id="a"><br> <button onclick="add()">Add</button> <p id="greeting">Greetings</p> </form>Su llamada de función está sucediendo mucho antes del evento de clic (en la carga de la página), en lugar de devolver el valor de la función, puede actualizar el contenido del elemento dentro de la función misma.
Además, le sugiero que use innerText o textContent para configurar el contenido si es una cadena simple (no htmlString ).
Puedes probar de la siguiente manera:
function add() { var a3 = document.getElementById('a').value; document.getElementById("greeting").textContent += " " + a3; } <form> a: <input type="number" name="a" id="a"><br> <button type="button" onclick="add()">Add</button> <p id="greeting">Greetings</p> </form>Mientras llama a add() desde el botón html onClick, puede necesitar actualizar DOM desde la función de agregar con innerText
function add() { var a3 = document.getElementById('a').value; document.getElementById("greeting").innerText = a3; } a: <input type="number" name="a" id="a"><br> <button onclick="add()">Add</button> <p id="greeting">Greetings</p>