Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вывод переменной содержащей таблицу (https://javascript.ru/forum/dom-window/30131-vyvod-peremennojj-soderzhashhejj-tablicu.html)

Elve 25.07.2012 12:13

Вывод переменной содержащей таблицу
 
Доброго времени суток, столкнулся с задачей такого характера :
Есть движок, он на страницу передает переменную внутри которой таблица, и вот надо эту переменную вывести с помощью js. Гуглил долго и упорно, пользовался поиском тут, но результат нулевой.
Пробовал такие варианты:
<script type="text/javascript">
 var prod = ("{$product->body}");
document.write(prod);
 </script>

Убирал кавычки возле переменной - ноль на массу. В браузере видно что переменной присваивается хтмл таблица со всем содержимым
var prod = ("<table style="width: 282px; height: 102px;" border="0"><tbody><tr><td class="col1">Класс</td><td class="col2">Star Wars</td></tr><tr><td class="col1">Артикул:</td><td class="col2">9677</td></tr><tr><td class="col1">Детали</td><td class="col2"></td></tr><tr><td class="col1">Размер</td><td class="col2">от 6 лет</td></tr></tbody></table>");

так же попадал на http://javascript.ru/forum/dom-windo...-v-html-2.html и не помогло. Подскажите пожалуйста, что я делаю не так ив какую сторону смотреть.
Заранее спасибо

Deff 25.07.2012 12:16

Elve,
document.write(prod); работает ток до полной загрузки body
Для встави позже - пользуемся appendChild(), removeChild(), replaceChild().

Elve 25.07.2012 12:28

<script type="text/javascript">
var prod = ("{$product->body}");
 document.appendChild(prod);
 </script>

Опять таки ноль на массу :(
П.С. Когда подобная задача стояла с выводом переменной в которой просто обычный текст, то она легко была решена тем кодом, который я выложил с document.write

Deff 25.07.2012 12:36

Elve,
:) А где указание на родителя ? и создание элемента?
<body>
<script src="//mc.yandex.ru/metrika/watch.js" type="text/javascript"></script>
<script type="text/javascript">
 var DIV = document.createElement("div");
 DIV.innerHTML='dsaaaaaaaaaaaaaaaaaaaaaaaa'
 document.body.appendChild(DIV);
</script>
</body>

lord2kim 25.07.2012 13:53

Elve,
var prod = ("<table style="width: 282px; height: 102px;" border="0"><tbody><tr><td class="col1">Класс</td><td class="col2">Star Wars</td></tr><tr><td class="col1">Артикул:</td><td class="col2">9677</td></tr><tr><td class="col1">Детали</td><td class="col2"></td></tr><tr><td class="col1">Размер</td><td class="col2">от 6 лет</td></tr></tbody></table>");

но как видим присваивается неправильно...круглые скобки не нужны и по краям должны стоять одинарные кавычки, т.к. внутри используются двойные
document.getElementById("идентификатор элемента div, span, ...").innerHTML = prod;

или как Deff вам написал
document.getElementById("идентификатор элемента div, span, ...").appendChild(prod);

Elve 25.07.2012 14:57

Спасибо Deff , спасибо lord2kim . Все оказалось и правда достаточно банально и просто, достаточно было заменить var prod = ("{$product->body}"); на var prod = '{$product->body}'; и побежало как миленькое. Так как мне не надо было создавать новый элемент хтмл, то моего кода достаточно( сам скрипт находится внутри дива в который надо сделать вывод).
П,С. всем кто подсказывал + в карму :write:


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