@DarCKoder

Объясните пожалуйста, в чём тут дело?

Код :
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>asd</title>

</head>
<body>
	<input type="button" id="clean" value="Clean">
	<input type="button" id="myInput" value="Click Me">
	<input type="text" id="tIn">
	<div id="result"></div>

	<script>
		var clean = document.getElementById("clean");
		var myInput = document.getElementById("myInput");
		var tIn = document.getElementById("tIn");
		var result = document.getElementById("result");
		var resultFragment = document.createDocumentFragment();
		var wordObj = {};

		clean.onclick = function(){ //Очистка поля ввода при клике на кнопку clean.
			tIn.value = "";
		}

		myInput.onclick = function() {
			wordObj = {};
			var textIn = tIn.value;
			var textLength = textIn.length;
	
			for (var i = 0; i <= textLength - 1; i++) {
				var charWord = textIn.charCodeAt(i);

				if(wordObj[charWord] >= 0){
					wordObj[charWord] = wordObj[charWord] + 1;
				} else{
					wordObj[charWord] = 0;
					wordObj[charWord] = wordObj[charWord] + 1;
				};
			};

			for (var key in wordObj) {
				var theP = document.createElement("p")
				theP.innerHTML = String.fromCharCode(key) + " = " + wordObj[key];
				resultFragment.appendChild(theP);
			};

			result.innerHTML = resultFragment;
		};
	</script>
</body>
</html>


По идее должно было вывести кол-во определённой буквы из слова которое вписали в поле.
Пример: ввели слово "hi" , а ниже вывелось -
h = 1
i = 1
В данном случае выводится [object DocumentFragment]
А если поменять result.innerHTML = resultFragment; на result.appendChild(resultFragment);
выводится всё как задумано . В чём дело? Какая разница между ними в данном случае?
  • Вопрос задан
  • 223 просмотра
Пригласить эксперта
Ответы на вопрос 2
@DarCKoder Автор вопроса
И ещё 1 вопрос:
Я в хабрахабре новичок, и вчера впервые зашёл туда через свой профиль.
Перевёл анг. статью на рус-яз, и отправил на модерацию, сейчас моя статья стоит в режиме "Ожидания приглашения".
Что означает этот режим ожидания, и когда опубликуют статью?
Ответ написан
DocumentFragment это объект, а не DOMNode, при аппенде documentFragment в DOM присоединяются его дочерние ноды. Собственно просто так заменить innerHTML на documentFragment не выйдет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы