2009-06-04 3 views
3

Я хотел бы узнать ваши мысли о генерации кода HTML в моем JS-коде.Генерация HTML в коде JS

Я просто считаю, что стиль html.push("<tag>" + something + "</tag>") довольно раздражает. Я уже пробовал что-то с шаблонами внутри моего HTML-файла (и помещал в него некоторые заполнители), а затем использовал свой контент для замены заполнителей на мои реальные значения.

Но, возможно, у вас есть другие идеи, возможно, с использованием jQuery.

+0

Что вам не понравилось в решении по шаблонам? – Nosredna

+0

Не могли бы вы дать более подробную информацию и/или пример? Я не уверен, что вы пытаетесь сделать. Вы пытаетесь построить HTML для вызова something.innerHTML = myhtmlstring, или пытаетесь использовать функции DOM appendChild/replaceChild? –

ответ

3

jQuery имеет плагины шаблона javascript, такие как jBind и jTemplate. Я сам их не использовал, но по возможности рекомендую jQuery.

Замечание о генерации html, оно не доступно поисковой системе в большинстве случаев.

5

jQuery - это путь. Вы можете сделать что-то вроде этого:

// create some HTML 
var mySpan = $("<span/>").append("Something").addClass("highlight"); 
  • это кросс-браузерный,
  • это простой в использовании синтаксиса

Существует также templating plugin.

3

Я большой поклонник как PrototypeJS ручками templates.

Сначала вы создаете экземпляр класса Template и передаете ему строку, содержащую шаблон HTML.

var tpl = new Template('Here is a link to <a href="#{link}">#{sitename}</a>'); 

Затем вы передаете ему данные, содержащие значения для замены в шаблоне.

$('someDiv').innerHTML = tpl.evaluate({link: 'http://www.stackoverflow.com', sitename: 'StackOverflow'}); 

В приведенном выше примере, у меня есть DIV с идентификатором = «someDiv» и я заменить содержимое DIV с результатом оценки шаблона.

0

Есть куча функции JQuery, которая поддерживает это. В частности, вы должны смотреть на append(content), appendTo(content)prepend(content)prependTo(content), replaceWith(content), after(content), before(content), insertAfter(content) и insertBefore(content).

3

У Resig есть немного blog entry на создание очень легкой системы шаблонов.

Смежные вопросы