Показать сообщение отдельно
  #5 (permalink)  
Старый 31.07.2014, 07:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

WorM32, вы все достали с такими советами:
el.innerHTML += 'новая строка' + '<br>';
Нельзя так делать, нельзя! foo += bar - это foo = foo + bar, перезапись всего содержимого.

same4,
Если я правильно понял, то делается то что вам надо примерно так:
<style>
.warning{color: red}
#main-output p{margin:0; padding:0}
</style>
<input type='text' id="main-input"><input type='button' id="main-button" value="go">
<div id="main-output"></div>

<script>
var input = document.getElementById('main-input'),
    button = document.getElementById('main-button'),
    output = document.getElementById('main-output');

function enterCommand(){
  if (input.value in commandList) commandList[input.value]();
  else out('Команда не существует', 'warning');
}

button.onclick = enterCommand;
  
var commandList = {
  test: function(){
    out('Просто тест')
  },
  test2: function(){
    out('Просто тест2')
  }
};

function out(msg, cls){
  var p = document.createElement('p');
  p.appendChild(document.createTextNode(msg));
  
  if(cls) p.className = cls;
  output.appendChild(p)
}
</script>


P.S. В js сообществе принято с заглавных букв писать только конструкторы.
__________________
29375, 35

Последний раз редактировалось Aetae, 31.07.2014 в 07:30.
Ответить с цитированием