Я недавно сделал это упражнение, и хотя подход с тегом <script>
кажется немного хакерским, я принял это как хорошее решение и выбрал свою собственную версию (версия Джона Резига, очевидно, действительно хороша, но я выбрал свою собственную, легко понятную для моего собственного мозга) версия)
Моя версия представляет собой базовый шаблон и замену с использованием заменяемых значений в form
##VALUE##
ШАБЛОН: (шаблон отдельного элемента или шаблон строки)
<script type="text/html" id="ItemTemplate">
<table>
<tr>
<td>##LABEL1##</td>
<td>##VALUE1##</td>
<tr>
</table>
</script>
ФУНКЦИЯ СОЗДАНИЯ КОНТЕНТА:
function constructFromTemplate(content, values, appendTo) {
var modifiedHtml = content;
modifiedHtml = modifiedHtml.replace(new RegExp('__', 'g'), '##');
$.each(values, function (n, v) {
modifiedHtml = modifiedHtml.replace(new RegExp('##' + n + '##', 'g'), v);
});
if (appendTo != null)
{
$(appendTo).append(modifiedHtml);
//initializePageElements();
}
return modifiedHtml;
}
ИСПОЛЬЗОВАНИЕ
Содержимое будет возвращено из функции, и/или вы можете установить параметр appendTo, установив elementID
для автоматического append
содержимого. (установите null
вместо append
)
Заменяемые значения просто добавляются как динамический объект, где object
имен являются заменяемыми элементами.
var theContent = constructFromTemplate(ItemTemplate, { LABEL1: 'The Label 1 content', LABEL2: 'The Label 2 content' }, null);
Примечание: я закомментировал //initializePageElements();
, это используется для инициализации jQuery
плагинов и стилей в шаблоне.
Кажется, что при вставке содержимого в DOM работают только встроенные стили.
person
Mark Redman
schedule
18.11.2010
<script>
не позволяющим браузеру даже анализировать html в теге? - person Webnet   schedule 19.11.2010