task-01.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. // html tree
  2. // -------------УСЛОВИЕ-------------
  3. {/* <body>
  4. <div>
  5. <span>Enter a data please:</span>
  6. <br/>
  7. <input type='text' id='name'>
  8. <input type='text' id='surname'>
  9. </div>
  10. <div>
  11. <button id='ok'>OK</button>
  12. <button id='cancel'>Cancel</button>
  13. </div>
  14. </body> */}
  15. {/* Сделайте декларативную JSON-структуру для тэгов выше, в которой:
  16. - каждый тэг будет объектом
  17. - имя тэга будет полем tagName
  18. - вложенные тэги будут в поле subTags
  19. - текст в тэге будет в поле text
  20. - набор аттрибутов тэга будет в поле attrs.
  21. */}
  22. {/* Например для обычной таблицы 2x2 это будет выглядеть следующим образом: */}
  23. {/* <table border='1'>
  24. <tr>
  25. <td>
  26. 1x1
  27. </td>
  28. <td>
  29. 1x2
  30. </td>
  31. </tr>
  32. <tr>
  33. <td>
  34. 2x1
  35. </td>
  36. <td>
  37. 2x2
  38. </td>
  39. </tr>
  40. </table>
  41. var table = {
  42. tagName: 'table',
  43. attrs: {
  44. border: "1",
  45. },
  46. subTags: [
  47. {
  48. tagName: 'tr',
  49. subTags: [
  50. {
  51. tagName: "td",
  52. text: "1x1",
  53. },
  54. {
  55. tagName: "td",
  56. text: "1x2",
  57. },
  58. ]
  59. },
  60. {
  61. tagName: 'tr',
  62. subTags: [
  63. {
  64. tagName: "td",
  65. text: "2x1",
  66. },
  67. {
  68. tagName: "td",
  69. text: "2x2",
  70. },
  71. ]
  72. }
  73. ]
  74. } */}
  75. {/* Выведите значения текста во второй кнопке, используя . и [].
  76. Выведите значение атрибута id во втором input, используя . и []. */}
  77. // -------------РЕШЕНИЕ-------------
  78. const body = {
  79. tagName: "body",
  80. subTags: [
  81. {
  82. tagName: "div",
  83. subTags:
  84. [
  85. {
  86. tagName: "span",
  87. text: "Enter a data please:"
  88. },
  89. {
  90. tagName: "br"
  91. },
  92. {
  93. tagName: "input",
  94. attrs: {
  95. type: "text",
  96. id: "name"
  97. }
  98. },
  99. {
  100. tagName: "input",
  101. attrs: {
  102. type: "text",
  103. id: "surname"
  104. }
  105. }
  106. ]
  107. },
  108. {
  109. tagName: "div",
  110. subTags:
  111. [
  112. {
  113. tagName: "button",
  114. attrs: {
  115. id: "ok"
  116. },
  117. text: "OK"
  118. },
  119. {
  120. tagName: "button",
  121. attrs: {
  122. id: "cancel"
  123. },
  124. text: "Cancel"
  125. }
  126. ]
  127. }
  128. ]
  129. }
  130. const task01block = document.createElement('div');
  131. task01block.style = "border: 2px solid green; border-radius:5px; margin-bottom:10px; padding:10px";
  132. const task01title = document.createElement('h2');
  133. task01title.innerText = 'Task-01 html tree';
  134. const elem1 = document.createElement('p');
  135. const elem2 = document.createElement('p');
  136. root.appendChild(task01block);
  137. task01block.appendChild(task01title);
  138. elem1.innerText=body.subTags[1].subTags[1].text;
  139. task01block.appendChild(elem1);
  140. elem2.innerText = body.subTags[0].subTags[3].attrs.id;
  141. task01block.appendChild(elem2);