|
|
|
собрать из json Html
|
|||
|---|---|---|---|
|
#18+
Добрый день. Аяксом занимаюсь ниделю. Не могу допереть, как при помощи 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. Помогите розобраться пожалуйста , кто знает) Спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2015, 10:52 |
|
||
|
собрать из json Html
|
|||
|---|---|---|---|
|
#18+
Valeriy1996, .. если на чистом jQuery, то ищите плагины типа jQuery Grid или List ... но в общем для этого используются мапперы, например knockout.js .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2015, 11:14 |
|
||
|
собрать из json Html
|
|||
|---|---|---|---|
|
#18+
а зачем HTML-код передавать через JSON ? не проще напрямую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2015, 11:23 |
|
||
|
собрать из json Html
|
|||
|---|---|---|---|
|
#18+
бухалтер фантоцци, Как на прямую ? Не совсем понял. Через json осбиратьдся должно, потому что потом будет быстрее Подкоректирвать json- просто добавив туда нужный итем с описанием , а HTML собиреться на его основе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2015, 11:45 |
|
||
|
собрать из json Html
|
|||
|---|---|---|---|
|
#18+
Valeriy1996, Через JSON лучше передавать данные, а HTML-строки формировать или на сервере, или на клиенте. Исходя из приведённого обрывка JSON и HTML, непонятно откуда берётся информация о классах, почему именно H2 и т.д. Подозрение, что это захардкодено в JS Каков способ формирования и вставки HTML-кода? - через вставку собранной строки HTML - через appendChild и createTextNode и т.д. имхо проще и быстрее собрать HTML-строку и вставить её через innerHTML, где будет собираться строка (на сервере или клиенте), другой вопрос. Что именно представляет сложность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2015, 11:58 |
|
||
|
собрать из json Html
|
|||
|---|---|---|---|
|
#18+
Valeriy1996, а Вы можете предоставить валидный json, а не кусок фиг знает чего? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2015, 12:50 |
|
||
|
собрать из json Html
|
|||
|---|---|---|---|
|
#18+
А вообще для начала достаточно написать один маленький метод: Код: 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. и получить workItems аяксом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2015, 13:00 |
|
||
|
собрать из json Html
|
|||
|---|---|---|---|
|
#18+
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> Буду рад если укажыте где ошибся и спасибо за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 20:29 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38982837&tid=1445933]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
170ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 437ms |

| 0 / 0 |
