Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как вывести все элементы массива? (https://javascript.ru/forum/misc/60205-kak-vyvesti-vse-ehlementy-massiva.html)

vsenetak 16.12.2015 23:10

Как вывести все элементы массива?
 
Имеется скрипт, который выводит строку в обратном порядке 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>

рони 16.12.2015 23:22

vsenetak,
document.getElementById('res2').innerHTML += str2[j]

laimas 16.12.2015 23:23

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

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

а последним и будет последний элемент массива.

vsenetak 16.12.2015 23:38

Ух ты, как бы с одной стороны да, проблема решилась, спасибо! но появилась другая проблема, если я хочу ввести другое значение оно опять же конкатится с предыдущим, как это можно решить?

рони 16.12.2015 23:40

Цитата:

Сообщение от vsenetak
как это можно решить?

подумать над строкой 36, бросая короткие взгляды на строку 39 :lol:

vsenetak 17.12.2015 01:21

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

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

И подскажите ещё, пожалуйста, как удалить содержимое тега, два часа разбирался как применить document.getElementById('res2').removeChild(); так и не понял что должно быть в аргументе removeChild

рони 17.12.2015 02:31

vsenetak,
строка 36
document.getElementById('res2').innerHTML = ''

vsenetak 17.12.2015 13:53

А есть принципиальная разница между тем что я написал и что вы предложили? Или можно использовать любой вариант?

ruslan_mart 17.12.2015 18:05

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

while(elem.firstChild) {
    elem.removeChild(elem.firstChild);
}


Часовой пояс GMT +3, время: 09:18.