Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   DOM js создать таблицу на новой странице (https://javascript.ru/forum/events/74089-dom-js-sozdat-tablicu-na-novojj-stranice.html)

oleg_t 12.06.2018 22:57

DOM js создать таблицу на новой странице
 
добрый день!
требуется при нажатии на кнопку отрыть новую страницу в указанное место (перед кнопкой divBtCheck) вставить таблицу. Т.к. целью является изучение JS, просьба при ответе JQuery не использовать.
Вроде бы всё несложно, но почему-то у меня в результате таблица просто дописывается в конец новой страницы, а не вставляется перед кнопкой. Понятно только одно - где-то я "косячу". Возможно даже, что и везде.

Вот основная страница:
<DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Тестовый сайт</title>
    <script src="./scripts/newtable.js?1.0.1" defer></script>
  </head>           

<body>
  <header>
  <nav>
  </nav>
  </header>

  <section class="main">
      <button class="btNewWin">новое окно</button>
  </section>

  <footer>
  </footer>

</body>

</html>


А вот шаблон, который открывается js-ом:
<html>
  <head>
    <meta charset="UTF-8">
    <title>Open New Window</title>
    <link rel="stylesheet" type="text/css" href="newwin.css?1.0.4">  
  </head>           

<body>
	
  <div class="divText">
    <p class="pText">Текст pText</p>
  </div>

  <div class="divBtCheck">
    <button class="btCheck">Кнопка</button>
  </div>

</body>
</html>


Ну и сам скрипт:
window.onload = function() {
  var newWin = document.querySelector('.btNewWin');
  newWin.onclick = function(event) {
    var d = window.open('./html/newwin.html', 'focus');    
    d.onload = function() {
      var newBody = d.document.querySelector('divBtCheck');      
      var newTable = d.document.createElement('table');
          newTable.classList.add('newTable');
      var newTbody = d.document.createElement('tbody');
      var newDiv = d.document.createElement('div');          
          newDiv.classList.add('tblResult');

      var row = d.document.createElement('tr');    
      for( var i=0; i<6; i++ ) {
        var tdi = d.document.createElement('td');
        tdi.innerHTML = 'res: <br>' + i;
        row.appendChild(tdi);
      };
      newTbody.appendChild(row);    

      var row = d.document.createElement('tr');    
      for( var i=0; i<6; i++ ) {
        var tdi = d.document.createElement('td');
        tdi.innerHTML = 'res: <br>' + i;
        row.appendChild(tdi);
      };
      newTbody.appendChild(row);    
      
      newTbody.appendChild(row);          

      newTable.appendChild(newTbody);        
      newDiv.appendChild(newTable); 
      
      d.document.body.insertBefore(newDiv, newBody);
    }; /* d.window.onload */
  }; /* newWin.onclick */

рони 12.06.2018 23:38

Цитата:

Сообщение от oleg_t
Ну и сам скрипт:

где строка 37?
Цитата:

Сообщение от oleg_t
где-то я "косячу".

медитировать в строке 6

oleg_t 13.06.2018 11:15

1.
Цитата:

где строка 37?
ну да, ну да... Pardon:
37 }; :)

2.
Цитата:

медитировать в строке 6
Намёк понял. А что делать - нет. :blink:

oleg_t 13.06.2018 11:18

Ой, т.е., поменять ('divBtCheck') на ('.divBtCheck')?

рони 13.06.2018 11:26

Цитата:

Сообщение от oleg_t
Ой, т.е., поменять

да

oleg_t 13.06.2018 11:30

:thanks:

... а то обидно сидеть и тупо пялиться в экран, не понимая, что за хрень в результате...

ещё раз - :thanks:


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