Показать сообщение отдельно
  #1 (permalink)  
Старый 16.07.2017, 19:17
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

Функция, которая добавляет разметку на страницу
Задача:
Создайте объект, описывающий html-разметку. Напишите функцию, которая добавляет разметку в произвольный контейнер на странице.

разметка:
<section id="methods">
	<article>
		<h1>Array.prototype.every()</h1>
		<p>Метод every() проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции.</p>
	</article>
	<article>
		<h1>Array.prototype.some()</h1>
		<p>Метод some() проверяет, удовлетворяет ли хоть какой-нибудь элемент массива условию, заданному в передаваемой функции.</p>
	</article>
	<article>
		<h1>Array.prototype.reduce()</h1>
		<p>Метод reduce() применяет функцию к аккумулятору и каждому значению массива (слева-направо), сводя его к одному значению.</p>
	</article>
	<article>
		<h1>Array.prototype.reduceRight()</h1>
		<p>Метод reduceRight() применяет функцию к аккумулятору и каждому значению массива (справа-налево), сводя его к одному значению.</p>
	</article>
</section>




мой js:
var tree={
  tag:'section',
  id: 'methods',//это атрибут тега section
  children:{
    children:{
      tag: 'article',
      children:{
        tag: 'h1',
        content: 'Array.prototype.every()',
      },
      children:{
        tag: 'p',
        content: 'Метод every() ...',
      },
    },
    children:{
      tag: 'article',
      children:{
        tag: 'h1',
        content: 'Array.prototype.some()',
      },
      children:{
        tag: 'p',
        content: 'Метод some() ...',
      },
    },
  },
}

function buildTree(tree, target) {
  for (var key in tree) {
    var item=tree[key];
    var $tag = $('<' + item.tag + '>').appendTo(target);

    if (item.children) {
          buildTree(item.children, $tag);
        };

    if (item.content) {
      $tag.text( item.content );
    };
  }
}

buildTree(tree, 'body');




мне на странице и в коде html выдает это:
html:
<!DOCTYPE html>
<html lang="ru">
	<head>
		<meta charset="utf-8">
		<title>doc</title>
		<script src="https://code.jquery.com/jquery-3.2.1.js" 
		integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" 
		crossorigin="anonymous"></script>
	</head>
	<body>
		
		<script src="js/script.js"></script>
                <undefined></undefined>
               <undefined>
                              <undefined></undefined>
                             <p>Метод some() ...</p>
               </undefined>
		
	</body>
</html>



На странице отображается текст "Метод some() ...".
Только последний тег р

Помогите разобраться. Что я не так прописываю?
Ответить с цитированием