Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Вставка нескольких строк в таблицу в tr (https://javascript.ru/forum/jquery/60985-vstavka-neskolkikh-strok-v-tablicu-v-tr.html)

Osof 30.01.2016 20:01

Вставка нескольких строк в таблицу в tr
 
Дорый день.
Есть задача. Дана таблица, в который при нажатии на некоторую строку должно подгружаться еще несколько строк (или одна).
Как это реализовано:
<table><tr><td colspan = 2>LINK</td><tr><tr id="load"></tr></table>

При нажатии на LINK срабатывает такой скрипт
$("#load").html(data)


Так вот. Если
data = "<td>1</td><td>2</td>"
тогда все нормально. А если
data = "<td>1</td><td>2</td></tr><tr><td>3</td><td>4</td>"
то вообще ничего не происходит. Запрос срабатывает, ответ получается, но в строку ничего не вставляется. Как будто комбинация "</tr><tr>" вводит браузер в ступор и он не может разорвать строку и добавить еще одну.

Может кто-то сталкивался?

рони 30.01.2016 20:07

Osof,
так это вы не строку рвёте а уже таблицу на части

Osof 30.01.2016 20:10

Почему таблицу? </table> нигде не вставляется. Если я в исходный код добавляю руками <td>1</td><td>2</td></tr><tr><td>3</td><td>4</td>, то все ок, добавляется две строки. А вот если аяксом - ничего вообще не добавляется.

destus 30.01.2016 20:18

Ошибка в html. Перед tr с ид должен идти закрывающий тэг /tr

Osof 30.01.2016 20:38

Цитата:

Сообщение от destus (Сообщение 405567)
Ошибка в html. Перед tr с ид должен идти закрывающий тэг /tr

Виноват, опечатался.
Конечно там вот так
<table><tr><td colspan = 2>LINK</td></tr><tr id="load"></tr></table>

рони 30.01.2016 20:41

:write: лучше бы без извратов но если хочется то можно ... тут далее типа код для любителей погорячее
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #load{
    background-color: #00FF00;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
   $(function(){
   data = "<td>1</td><td>2</td></tr><tr><td>3</td><td>4</td>";
   //data = "<td>1</td><td>2</td>"
   $("#load").html(function() {
  data = $("<tr>"+data+"<\/tr>");
  var i = this.rowIndex, parent = this.parentNode;
  $.each(data,function(indx, tr){
      if(indx) {
         var newTr = parent.insertRow(++i);
         newTr.innerHTML = tr.innerHTML
      }
        });
  return data.html()
})
   })
  </script>
</head>

<body>
 <table><tr><td colspan = 2>LINK</td></tr><tr id="load"></tr></table>

</body>

</html>

Osof 30.01.2016 20:52

Цитата:

Сообщение от рони (Сообщение 405574)
:write: лучше бы без извратов но если хочется то можно ... тут далее типа код

Не понял. Без извратов это как? И как можно?

рони 30.01.2016 20:56

Osof,
смотрите пост 6 снова

Osof 30.01.2016 21:13

Цитата:

Сообщение от рони (Сообщение 405579)
Osof,
смотрите пост 6 снова

Хохо... сурово...
Благодарен. А чисто для общего развития. Почему <tr>СЮДА</tr> нельзя вставить
<td></td></tr><tr><td></td>
? Это баг или фича?

рони 30.01.2016 21:26

Osof,
а как бедному парсеру догадаться что вы ему не хрень подсовываите? которую надо ещё разбить на части и после тега вставить а он умеет тока внутрь и то что первое сможет найти в том что ему дадут то и вставит.
Цитата:

Сообщение от Osof
? Это баг или фича?

ни бага ни фичи не вижу.


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