Tengo una entrada en html y quiero poner el texto de la entrada en un objeto en JS y mostrarlo en un
etiqueta en html como resultado. Como no quería simplificar el código, traté de crear una función (para poder llamarla para cada atributo del objeto. <input type="text" placeholder="Typ" id="type-mhouse" /> ¿Es el aporte.
const land = { Type: "", Adress: "", Value: "", updateValue: function (x, y, z) { this.x = document.getElementById(y).value; document.getElementById(z).textContent = this.x; console.log(this[0]); }, };es el JS.
<p class="ergebnis" id="ergtype-house"></p>Es donde se muestra el resultado.
El problema es: cuando escribo, por ejemplo, "Flat" en la entrada, se muestra correctamente en la salida html, pero el land.Type sigue siendo "".
He intentado todo y todavía soy muy nuevo en JS, así que no puedo resolverlo. (También sé que no debería nombrar cosas como "Tipo" o "Valor". Lo cambiaré).
¡Gracias por cualquier comentario!
Edición IMPORTANTE: el objeto de tierra se usa en un archivo js vinculado. La función se llama dentro del HTML al hacer clic en un botón:
<script> $(document).ready(function () { //Button on Modal $("#submit").click(function () { land.updateValue("Type", "type-mhouse", "ergtype-house"); }); }); </script>No estoy seguro de entender lo que intenta hacer, pero aquí hay una solución para solucionar sus problemas.
const land = { type: "", address: "", value: "", updateValue: function(landAttributeName, textElementId, displayElementId) { this[landAttributeName] = document.getElementById(textElementId).value; document.getElementById(displayElementId).innerText = this[landAttributeName] || ''; }, };Por cierto, tienes razón, deberías usar nombres más fáciles de entender :-)
Solo hay dos cosas difíciles en Ciencias de la Computación: invalidación de caché y nombrar cosas. --Phil Karlton