Как я могу использовать данные, возвращаемые селектором jQuery с шаблонами?

0

Как я могу отобразить шаблон, например, mustache.js, используя данные, возвращаемые селектором jQuery? Вот так:

var imgs = $('img'),
    arrayOfImgs = { img : $.makeArray(imgs) },
    template = "{{#img}} <span> {{.}} </span> {{/img}}",
    html = Mustache.render(template, arrayOfImgs);
$('.portfolio').html(html);

Это не работает, поскольку $.makeArray(imgs) возвращает массив объектов img, есть ли работа вокруг?

  • 1
    Вам придется возвращать HTML в виде строки, что легко сделать с помощью $.map и вернуть this.outerHTML , но, как правило, это плохая идея, и просто использование wrap() кажется более подходящим?
  • 0
    @ Adeneo Thnx много, что работало. Просто с .map () пришлось использовать .get (). Шаблон немного сложнее. Span просто для демонстрации. Если вы сделаете ответ, будем рады принять его.
Показать ещё 1 комментарий
Теги:
templates

2 ответа

1
Лучший ответ

Вам нужно будет вернуть HTML как строку, что легко сделать с помощью $.map и вернуть this.outerHTML

var imgs = $('img'),
    arrayOfImgs = $.map(imgs, function(el) { return el.outerHTML; }),
    template = "{{#img}} <span> {{.}} </span> {{/img}}",
    html = Mustache.render(template, arrayOfImgs);

$('.portfolio').html(html);
0

Просто используйте var imgs = $('img'). Это уже массив тегов img html. Я не знаю, как работает Усы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню