powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / собрать из json Html
9 сообщений из 9, страница 1 из 1
собрать из json Html
    #38982837
Valeriy1996
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Аяксом занимаюсь ниделю. Не могу допереть, как при помощи jqery собрать html.
То есть нужно чтоб , скрипт читал json видел например item jsona собирал HTML и вставлял даные из json в собраные dom елементы которые jqery собирает когда видит json.
ниже представлен json который я сделал , а чуть ниже html структура которая должна из него получиться.


{
"works-item":{

"item":{
"title":"Limited <br>для VAZ",
"image-data":"VAZ",
}

"item":{
"title":"Limited <br>в BAZ",
"image-data":"BAZ",
}

<div id="cases" class="c-works">
<h2 class="work-header" style="display: none;"></h2>
<div class="box_skvere">
<img data-url="worksVAZ" src="img/works/VAZ.jpg">
<h3>Limated <br>
для VAZ</h3>
</div>
<div class="box_skvere">
<img data-url="worksBAZ" src="img/works/BAZ.jpg">
<h3>Limited <br>
в BAZ</h3>
</div>
</div>

Тоесть грубо говоря в Html изначально ничего нет все собираеться после прочтения и парсинга jsona. И количество собраных дом елементов должно соотвецтвовать количеству , итемов в json.
Помогите розобраться пожалуйста , кто знает)
Спасибо)
...
Рейтинг: 0 / 0
собрать из json Html
    #38982848
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriy1996,

.. если на чистом jQuery, то ищите плагины типа jQuery Grid или List ... но в общем для этого используются мапперы, например knockout.js ....
...
Рейтинг: 0 / 0
собрать из json Html
    #38982850
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем HTML-код передавать через JSON ?
не проще напрямую?
...
Рейтинг: 0 / 0
собрать из json Html
    #38982862
Valeriy1996
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бухалтер фантоцци, Как на прямую ? Не совсем понял. Через json осбиратьдся должно, потому что потом будет быстрее Подкоректирвать json- просто добавив туда нужный итем с описанием , а HTML собиреться на его основе
...
Рейтинг: 0 / 0
собрать из json Html
    #38982866
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriy1996,

Через JSON лучше передавать данные, а HTML-строки формировать или на сервере, или на клиенте.

Исходя из приведённого обрывка JSON и HTML, непонятно откуда берётся информация о классах, почему именно H2 и т.д.
Подозрение, что это захардкодено в JS

Каков способ формирования и вставки HTML-кода?
- через вставку собранной строки HTML
- через appendChild и createTextNode и т.д.

имхо проще и быстрее собрать HTML-строку и вставить её через innerHTML,
где будет собираться строка (на сервере или клиенте), другой вопрос.

Что именно представляет сложность?
...
Рейтинг: 0 / 0
собрать из json Html
    #38982900
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriy1996, а Вы можете предоставить валидный json, а не кусок фиг знает чего? :)
...
Рейтинг: 0 / 0
собрать из json Html
    #38982906
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще для начала достаточно написать один маленький метод:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
</head>
<body>
  <div id="cases" class="c-works"></div>
  <script>
    function renderWorks(items) {
      var container = $('#cases'), html = [], i, item;

      html.push('<h2 class="work-header" style="display:none"></h2>');

      for (i = 0; i < items.length; i ++){
        item = items[i];

        html.push('<div class="box_skvere">');
        html.push('<img data-url="works', item['image-data'], '" src="img/works/', item['image-data'], '.jpg">');
        html.push('<h3>', item['title'], '</h3>');
        html.push('</div>');
      }

      html.push('</ul>');
      container.html(html.join(''));
    }
    
    var workItems = [
      { 'image-data': 'VAZ', 'title': 'Limited <br>для VAZ' },
      { 'image-data': 'BAZ', 'title': 'Limited <br>в BAZ' }];
      
    renderWorks(workItems);
  </script>
</body>
</html>


и получить workItems аяксом...
...
Рейтинг: 0 / 0
собрать из json Html
    #38985233
Valeriy1996
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

Спасибо, сделал так как вы говорили, работает но для всего кода . Гдето допустил ошибку но немогу найти , буду благодарен если кто укажет на ошибку в коде.

Вот код : <script>
function renderWorks(items) {
var container = $('#cases'), html = [], i, item;

html.push('<h2 class="work-header" style="display:none"></h2>');

for (i = 0; i < items.length; i ++){
item = items[i];

html.push('<div class="box_skvere">');
html.push('<img data-url="works', item['image-data'], '" src="img/works/', item['image-data'], '.jpg">');
html.push('<h3>', item['title'], '</h3>');
html.push('</div>');

}

html.push('</ul>');
html.push('<div class="clearfix"></div>');
container.html(html.join(''));
}

var workItems = [
{ 'image-data': 'Baz', 'title': 'Digital <br> Baz' },
{ 'image-data': 'As179', 'title': 'Digital <br> As179' },
{ 'image-data': 'Rs159', 'title': 'Digital Signage <br> для Rs159' },
{ 'image-data': 'Ret121', 'title': 'Digital Signage <br> в Ret121' },
{ 'image-data': 'Pret543', 'title': 'Digital Signage <br> Pret543' },
{ 'image-data': 'Dret212', 'title': 'Digital Signage <br> Dret212' }];

renderWorks(workItems);
</script>
<script>


function renderWorked(items) {
var containered = $('.works blocks'), html = [], i, item;


for (i = 0; i < items.length; i ++){
item = items[i];

html.push('<div class="works' + item['Category'] + 'hide">');
html.push('<div class="work-wrapper closed w' + item['Wraper']+'">');
html.push('<img data-url="preview"' + item['image-data'] + '" src="img/works/preview/' + item['image-data'] + 'data-alt-src="' + item['data-alt-src'] + '.jpg" title="" alt="">');
html.push('<h3>'+ item['title'] + '</h3>');
html.push('</div>');


}

html.push('</div>');
console.log( containered).html(html.join(''));
}

var workItemsed = [
{'Wraper': '2','Category': 'Baz','img data-video': '5n_aW-PsdQ0', 'data-alt-src':'T0Yd1dsBA5k', 'image-data': '1RmdspZTaY', 'title': 'Digital <br> Baz' },
{'Wraper': '1','img image-data': 'P5dasJ51AU', 'data-alt-src':'T0Yd1sdA5k_h.jpg', 'image-data': '5n_aW-asIQ0', 'title': 'Digital <br> As179 }];
renderWorks(workItemsed);
</script>


Пробовал реализовать вот ету разметку:

<div class="works blocks">
<div class="worksBaz" style="height: auto;">
<div class="work-wrapper closed w2">
<img data-video="T0Yd1Fsd5k" data-alt-src="img/works/preview/T0Yd1dsA5k_h.jpg" src="img/works/preview/T0Yd1FTBA5k.jpg" title="" alt="" />
<h4> Baz (пример2)</h4>
</div>
<div class="work-wrapper closed w1">
<img data-video="JOMXK_UsO3I" data-alt-src="img/works/preview/JOMXK_UlO3I_h.jpg" src="img/works/preview/JOMXK_UlO3I.jpg" title="" alt="" />
<h4>Baz (пример3)</h4>
</div>

Буду рад если укажыте где ошибся и спасибо за помощь
...
Рейтинг: 0 / 0
собрать из json Html
    #38985388
Фотография re_qas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а сколько у вас тегов с id="cases" ?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / собрать из json Html
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]