Как заменить узел createText другой строкой - Javascript

Ниже приводится функция для отображения букв, введенных пользователем на html-странице. Я хочу, чтобы это было так:

Как заменить узел createText другой строкой - Javascript

Но я получаю что-то вроде этого:

Как заменить узел createText другой строкой - Javascript

Как сделать так, чтобы появлялся только последняя строка?

Вот мой код:

var words = ['quaffle', 'bludger', 'pensieve', 'harry', 'lupin', 
'butterbeer', 'polyjuice', 'patronus', 'horcrux', 'voldemort'];
correctletters='';
missedletters='';

function getRandomWord(){
   randomWord = words[Math.floor(Math.random()* words.length)]; 
   wordlength = randomWord.length;
}

function getGuess(){
    letterGuessed = document.getElementById("inputfield").value.toLowerCase();
    document.getElementById("inputfield").value = null;
    alert(randomWord);
    alert(letterGuessed);
    r = randomWord.includes(letterGuessed);

    if (r == true){
        correctletters = correctletters + letterGuessed;
        alert("correct letters: "+correctletters);
    }

    else{
        missedletters = missedletters+letterGuessed;
        alert("missed letters: "+missedletters);
    }
    guess = missedletters + correctletters;
    displayGuessedLetters();
}

}

function displayGuessedLetters(){
   guessedletters = document.createElement("div");
   content = document.createTextNode(guess);
   guessedletters.appendChild(content);
   container = document.getElementById("inputcontainer");
   container.appendChild(guessedletters);
   guessedletters.style.cssText = 'font-family: "Josefin Sans"; font-size: 
   30px; text-transform: uppercase; color: rgb(255, 85, 49);';
}

Обновлено: Дело в том, что пользователь набирает письмо. Он отображается на веб-странице без этих повторений. Например, если пользователь вводит «а», в контейнере будет отображаться «а». В следующий раз, когда пользователь наберет «b», контейнер должен иметь «a b» Только вместо a, а затем отобразить ab.

вы можете использовать innerHTML вот так: guessedletters.innerHTML = content

Cinn 14.12.2018 13:43

попробуйте display: inline-block

Shireesha Parampalli 14.12.2018 13:47

@Cinn Когда я пытаюсь, ничего не выходит.

Devika Sujith 14.12.2018 14:02

@ Devika.S Используя guessedletters.appendChild(content), вы добавляете нового потомка при каждом вызове displayGuessedLetters(). Целью innerHTML / innerText является перезапись содержимого элемента. Так что попробуйте что-нибудь вроде container.innerHTML(`<div>${guess}</div>`). (и поместите css в другое место, например #inputcontainer div { font-family: ...etc })

Cinn 14.12.2018 14:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пожалуйста, добавьте все соответствующие части кода в следующие вопросы (например, correctLetters, missedletters и т. д.)

Вы добавляете новый DIV каждый раз, когда вызывается функция displayGuessedLetter. Вам просто нужно добавить новый letterGuessed к контенту:

function displayGuessedLetters(){
   content = document.createTextNode(letterGuessed);
   container = document.getElementById("inputcontainer");
   container.appendChild(content);
}

Просто добавьте пробел между ними и примените стили CSS к контейнеру. Я бы также переименовал «inputcontainer» в «outputcontainer».

Если мой код не соответствует вашим потребностям, просто прокомментируйте, и я попробую посмотреть! ваше здоровье

РЕДАКТИРОВАТЬ: рабочая рабочий пример: https://jsfiddle.net/ncpfxqhL/6/

Дело в том, что пользователь набирает письмо. Он отображается на веб-странице без этих повторений. Например, если пользователь вводит «а», в контейнере будет отображаться «а». В следующий раз, когда пользователь наберет «b», контейнер должен иметь «a b» Только вместо a, а затем отобразить ab. Я обновлю свой пост остальным кодом.

Devika Sujith 14.12.2018 14:17

вам, кстати, следует попытаться использовать меньше глобальных переменных. Если вы используете одно и то же имя переменной в другой области, это может привести к сбивающим с толку ошибкам. scotch.io/tutorials/understanding-scope-in-javascript

JustAMicrobe 14.12.2018 14:55

Спасибо! Это именно то, что мне нужно.

Devika Sujith 14.12.2018 14:57

Другие вопросы по теме