Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вставка строк в таблицу (https://javascript.ru/forum/dom-window/56921-vstavka-strok-v-tablicu.html)

S.E.K.T.O.R. 10.07.2015 07:56

Цитата:

Сообщение от kostyanet
Что за бред? Не бывает таких таблиц.

Бывают. Например на этом самом форуме. Откройте исходный код страницы и посмотрите.

Цитата:

Сообщение от kostyanet
Второе, откуда проблема?

В Ишаке проблема. Из-за него приходится сидеть и придумывать велосипед

Цитата:

Сообщение от kostyanet
tbody.innerHTML=data.innerHTML;

не сквозь-браузерный?

Нет. На ишаке не будет работать.
Сквозь-браузерный вариант получился только с jQuery
$("#addbtn").click(function() {
		$("#mytestid tr").remove();
		$("#mytestid").append("<tr><td>...</td></tr><tr><td>...</td></tr");
	});
Ну коль jQuery могет, значит и чистый JS должен суметь.
Все остальное отказывается работать на ишаке. :-/

рони 10.07.2015 08:07

Цитата:

Сообщение от kostyanet
tbody.innerHTML=data.innerHTML;

не сквозь-браузерный?

да это никогда не работало в ie < 10
https://learn.javascript.ru/basic-do...ти-innerhtml

рони 10.07.2015 09:06

S.E.K.T.O.R.,
может данные пересылать а не html - тогда никаких проблем со вставкой.

рони 10.07.2015 10:27

Вставка строк из текста в таблицу кросбраузерно
 
S.E.K.T.O.R.,
<!doctype html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <style>
    table, td { border: 1px solid black; }
  </style>
</head>
<body>
  <table>

    <tbody id="mytestid">
      <tr>
      <td>lalala</td>
    </tr>
    <tr>
      <td>lalala</td>
    </tr> </tbody>
  </table>
  <button>Add cells</button>

  <script>
    var button = document.getElementsByTagName('button')[0],
        tbody = document.getElementById('mytestid'),
        data =  '<tr><td>.1.1.</td></tr><tr><td>.2.2.</td></tr>';

    button.onclick = function() {
      var temp, div;
      while(temp = tbody.firstChild) {
          tbody.removeChild(temp);
        }
      div = document.createElement('div');
      div.innerHTML = '<table><tbody>' + data + '</tbody></table>' ;
      div = div.getElementsByTagName('tbody')[0];
      while(temp = div.firstChild) {
          tbody.appendChild(temp);
        }
    };
  </script>
</body>
</html>

kostyanet 10.07.2015 16:15

Цитата:

Сообщение от S.E.K.T.O.R.
Например на этом самом форуме

На этом форуме нет tbody внезапно посреди срок. Нормально делается table-thead-tfoot-tbody.

Про то, что innerHTML в ишаке 9-минус такой калечный, я не знал и сейчас подумал что и знать не собираюсь. У меня все равно нет такого ишака - как я проверю?

S.E.K.T.O.R. 10.07.2015 20:19

рони, огромное спасибо, все работает :dance:

kostyanet 10.07.2015 20:29

В теории, не обязательно имитировать таблицу, эти тр-тд отпарсятся в элементы и так, сами по себе, в том же диве. Надо проверить, мне лень.

рони 10.07.2015 20:39

Цитата:

Сообщение от kostyanet
В теории, не обязательно имитировать таблицу, эти тр-тд отпарсятся в элементы и так, сами по себе, в том же диве. Надо проверить, мне лень.

без таблицы не получится


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