Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   append + table (https://javascript.ru/forum/dom-window/40187-append-table.html)

imediasun1 26.07.2013 23:36

append + table
 
$('#info_delivery').append('<table><tr><td><p >Способ доставки</p></td>');
$('#info_delivery').append('<td><p >Стоимость доставки</p></td></tr></table>');

Почему в таком варианте надписи таблицы выстраиваются не в ряд а в столбик, хотя находятся в одном tr

zilker 27.07.2013 01:30

Воспользуйтесь отладчиком хрома - F12 или firebug в мозилле для просмотра живого HTML, тогда эти вопросы отпадут.
После
$('#info_delivery').append('<table><tr><td><p >Способ доставки</p></td>');

браузер создаст полноценную таблицу, то есть закроет за вас </tr> и </table>. Т.к. не в DOM не может быть половина таблицы, да и вообще любого тега.

imediasun1 27.07.2013 01:51

Как же тогда заполнять таблицу частями

danik.js 27.07.2013 10:55

Завести переменную в качестве буфера, не? Или использовать DOM-методы работы с таблицей insertRow/insertCell.

imediasun1 27.07.2013 14:22

а примерчик можете показать

danik.js 27.07.2013 14:56

var buffer = '';

buffer = 'Би';
// ....
buffer += 'н';
// ...
buffer += 'го!!!';

alert( buffer );

ruslan_mart 27.07.2013 17:13

Цитата:

Сообщение от imediasun1
Почему в таком варианте надписи таблицы выстраиваются не в ряд а в столбик, хотя находятся в одном tr

Может, потому что при добавлении '<table><tr><td><p >Способ доставки</p></td>', браузер автоматически закрывает тэг tr и table? А потом Вы после таблицы добавляете ещё td..., каша получается.

var table = '';
table += '<td><p Способ доставки</p></td>';
table += '<td><p>Стоимость доставки</p></td>';
$('#info_delivery').append('<table><tr>' + table + '</tr></table>');

danik.js 27.07.2013 17:36

Хм.. А я кажется знаю в чем дело. Скорее всего браузер обходится без закрывающих тегов, то есть создает элементы не дожидаясь закрывающих тегов, а при дальнейшем добавлении html получается уже неожиданный результат.

ruslan_mart 27.07.2013 17:38

Цитата:

Сообщение от danik.js
Хм.. А я кажется знаю в чем дело. Скорее всего браузер обходится без закрывающих тегов, то есть создает элементы не дожидаясь закрывающих тегов, а при дальнейшем добавлении html получается уже неожиданный результат.

Цитата:

Сообщение от Ruslan_xDD
Может, потому что при добавлении '<table><tr><td><p >Способ доставки</p></td>', браузер автоматически закрывает тэг tr и table?

А я разве не писал это выше?:)

danik.js 27.07.2013 18:15

А zilker разве не писал это выше?


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