#javascript #function #object #function-parameter
Вопрос:
У меня есть ввод в формате html, и я хочу поместить текст ввода в объект на JS и отобразить его на
в результате тег на html. Поскольку я не хотел упрощать код, я попытался создать функцию (чтобы я мог вызывать ее для каждого атрибута объекта. <input type="text" placeholder="Typ" id="type-mhouse" />
Является входным сигналом.
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]);
},
};
Это JS.
<p class="ergebnis" id="ergtype-house"></p>
Это место, где отображается результат.
Проблема в следующем: когда я набираю, например, «Плоский» на входе, он правильно отображается на выходе html, но земля.Тип остается «».
Я перепробовал все, и я все еще очень новичок в JS, поэтому я не могу решить эту проблему. (Также я знаю, что мне не следует называть вещи «Типом» или «Значением».. Я изменю его.)
Спасибо за любой комментарий!
ВАЖНОЕ изменение: Объект земли используется в связанном файле js. Функция вызывается внутри HTML при нажатии кнопки:
<script>
$(document).ready(function () {
//Button on Modal
$("#submit").click(function () {
land.updateValue("Type", "type-mhouse", "ergtype-house");
});
});
</script>
Комментарии:
1. Где вы используете
land
объект?2. В отдельном script.js файл, связанный с html. Однако кнопка, подтверждающая изменение, хранится в скрипте JSON в html
3. Пожалуйста, опубликуйте весь код целиком.
4. @youngmago, где вы меняете
land.Type
значение? Пожалуйста, опубликуйте весь свой код, чтобы мы могли вам помочь.5. Извините, я отредактировал его сейчас и опубликовал код. Спасибо за помощь !
Ответ №1:
Я не уверен, что понимаю, что вы пытаетесь сделать, но вот решение для решения ваших проблем.
const land = {
type: "",
address: "",
value: "",
updateValue: function(landAttributeName, textElementId, displayElementId) {
this[landAttributeName] = document.getElementById(textElementId).value;
document.getElementById(displayElementId).innerText = this[landAttributeName] || '';
},
};
Кстати, вы правы, вам следует использовать более понятные имена 🙂
В информатике есть только две трудные вещи: аннулирование кэша и присвоение имен вещам. — Фил Карлтон
Комментарии:
1. Большое спасибо за подробный ответ и цитату! Ты спасла меня от еще нескольких дней головной боли. Это работает!! Я хотел изменить атрибуты объекта с помощью ввода и отобразить их на странице нажатием кнопки.
2. Еще раз спасибо!! Если у вас есть время, не могли бы вы вкратце объяснить мне, что я сделал не так?