Soy nuevo en el aprendizaje de JavaScript. Solo para alguna prueba, construí esta función, la llamé y le asigné una variable a un resultado completo. ¿Hay alguna manera de usar la función como este ejemplo?
Aquí solo quiero pasar #country en la función dom(i) . Entonces debería ser getElementById("maid") , y después de llamarlo, asigne = maid para colocar esta variable maid después de innerHTML = .
Me pregunto si es posible escribir una función de JavaScript de esta manera.
var maid = "Made In Yiappa"; function dom(i) { var docs = document.getElementById(i).innerHTML; return docs; } dom("country") = maid; <p> The result is: <span id="country"></span> </p>Debes pasarlo como argumento a esa función:
var maid = "Made In Yiappa"; function dom(elementId, txt) { document.getElementById(elementId).innerHTML = txt; } dom("country", maid); <p> The result is: <span id="country"></span> </p>No puede asignar un valor al resultado de una llamada de función. Necesitas pasarlo como un argumento de función.
var maid = "Made In Yiappa"; function dom(i, text) { document.getElementById(i).innerHTML = text; } dom("country", maid); <p> The result is: <span id="country"></span> </p>El problema clave es que está devolviendo el valor de la propiedad innerHTML de la función, pero luego no puede asignarle una cadena porque innerHTML solo se puede configurar cuando está adjunto a un elemento.
querySelector quizás sea una mejor opción de método. Luego puede pasar su selector de #country como mencionó en su pregunta.
Entonces, podemos eliminar parte de la funcionalidad de la función y simplemente hacer que devuelva el elemento usando el selector. Luego podemos asignar main al innerHTML interno de ese elemento devuelto (aunque innerText podría ser más apropiado).
var maid = 'Made In Yiappa'; function dom(selector) { return document.querySelector(selector); } dom('#country').innerText = maid; <p> The result is: <span id="country"></span> </p>