Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.12.2015, 23:10
Новичок на форуме
Отправить личное сообщение для vsenetak Посмотреть профиль Найти все сообщения от vsenetak
 
Регистрация: 16.04.2015
Сообщений: 9

Как вывести все элементы массива?
Имеется скрипт, который выводит строку в обратном порядке https://jsfiddle.net/energy1/r1o05utf/3/ (смотреть второй скрипт), при выводе результата методом document.write((str2[j])); выводится правильно, а при нормальном выводе document.getElementById('res2').innerHTML = ((str2[j])); выводится только последний элемент массива. Подскажите, пожалуйста, как правильно вывести все элементы?

<h2>
	Здача №1
</h2>
	
<p>
	Вывести строку в обратном порядке
</p>
	
	
	<label for="str">Введите строку:</label>
	<input id="in" name="str" type="text" placeholder="some text" required >
	<label for="res">результат:</label>
	<output id="res"></output>
		
	<label for="str">Введите другую строку:</label>
	<input id="in2" name="str" type="text" placeholder="some text" required >
	<label for="res2">результат:</label>
	<output id="res2"></output>
	<br>
		<button id="button">Преобразовать</button>
		<br>	
		<button id="button2">метод 2</button>
	
<script>
			/*Первый вариант*/
	document.getElementById('button').onclick = function(){
		var str = document.getElementById('in').value;
		var res = str.split('').reverse().join('');
		document.getElementById('res').innerHTML = res;
		};


			/*===Второй вариант===*/
		*!*
	document.getElementById('button2').onclick = function(){
			var str2 = document.getElementById('in2').value;
			
			for(j=str2.length-1; j>=0;  j--){
				var res2 = ((str2[j]));
				document.getElementById('res2').innerHTML = ((str2[j]));				
			}
		};
*/!*

</script>

Последний раз редактировалось vsenetak, 16.12.2015 в 23:41.
Ответить с цитированием
  #2 (permalink)  
Старый 16.12.2015, 23:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

vsenetak,
document.getElementById('res2').innerHTML += str2[j]
Ответить с цитированием
  #3 (permalink)  
Старый 16.12.2015, 23:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Потому, что содержание постоянно перезаписывается здесь

document.getElementById('res2').innerHTML = str2[j]; //скобки лишние

а последним и будет последний элемент массива.
Ответить с цитированием
  #4 (permalink)  
Старый 16.12.2015, 23:38
Новичок на форуме
Отправить личное сообщение для vsenetak Посмотреть профиль Найти все сообщения от vsenetak
 
Регистрация: 16.04.2015
Сообщений: 9

Ух ты, как бы с одной стороны да, проблема решилась, спасибо! но появилась другая проблема, если я хочу ввести другое значение оно опять же конкатится с предыдущим, как это можно решить?
Ответить с цитированием
  #5 (permalink)  
Старый 16.12.2015, 23:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от vsenetak
как это можно решить?
подумать над строкой 36, бросая короткие взгляды на строку 39
Ответить с цитированием
  #6 (permalink)  
Старый 17.12.2015, 01:21
Новичок на форуме
Отправить личное сообщение для vsenetak Посмотреть профиль Найти все сообщения от vsenetak
 
Регистрация: 16.04.2015
Сообщений: 9

Вставил в 36 строку
document.getElementById('res2').firstChild.remove();

или есть более правильный метод?

И подскажите ещё, пожалуйста, как удалить содержимое тега, два часа разбирался как применить document.getElementById('res2').removeChild(); так и не понял что должно быть в аргументе removeChild
Ответить с цитированием
  #7 (permalink)  
Старый 17.12.2015, 02:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

vsenetak,
строка 36
document.getElementById('res2').innerHTML = ''
Ответить с цитированием
  #8 (permalink)  
Старый 17.12.2015, 13:53
Новичок на форуме
Отправить личное сообщение для vsenetak Посмотреть профиль Найти все сообщения от vsenetak
 
Регистрация: 16.04.2015
Сообщений: 9

А есть принципиальная разница между тем что я написал и что вы предложили? Или можно использовать любой вариант?
Ответить с цитированием
  #9 (permalink)  
Старый 17.12.2015, 18:05
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var elem = document.getElementById('res2');

while(elem.firstChild) {
    elem.removeChild(elem.firstChild);
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как вывести все свойства объекта? tiho Общие вопросы Javascript 17 15.11.2015 20:50
Подскажите как сравнить первые элементы многомерного массива? yloboda Элементы интерфейса 3 08.06.2014 15:00
Как вывести данные из PHP Sherminator Events/DOM/Window 2 07.08.2012 20:11
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
Как удалить все пустые элементы UL smashercosmo Events/DOM/Window 13 25.02.2009 09:03