javascript - 将 j/s 变量注入(inject)可重用的 HTML block 而不将两者混合在 j/s 文件中的有效方法是什么?

标签 javascript jquery dom

基本上,我有一个自动完成功能来帮助用户选择一个项目。当他们选择一个项目时,一系列与该项目相关的变量就会被保存。一旦他们单击“添加”,变量就会被注入(inject)到 HTML 模板中,而 HTML 模板又会被注入(inject)到 DOM 中。我的问题是,如何才能做到这一点,而不必将 HTML 代码与 j/s 代码混合,即 var example = "<div id='" + divId + "'></div>"; (等等)我希望问题足够清楚。

最佳答案

您查看过jQuery Templates吗? ?它基本上是客户端数据绑定(bind),这似乎是您想要做的。

例如,你可以做这样的事情..

假设您有一个 Song 对象列表,定义为:

var song = {
  title : 'Purple Rain',
  artist : 'Prince'
};

HTML:

<!-- Template definition -->
<script id="tmpl_songList" type="text/html">
  <li>
    <a>
        <span>${title}</span>
        <span>${artist}</span>
    </a>
  </li>
</script>

<!-- HTML container to host data-bound list -->
<ul id="song_list"></ul>

JS:

// bind data (songList) and append to HTML container.
$.tmpl($('#tmpl_songList'), songList).appendTo($('#song_list'));

关于javascript - 将 j/s 变量注入(inject)可重用的 HTML block 而不将两者混合在 j/s 文件中的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560270/

相关文章:

javascript - 为什么jQuery或诸如getElementById之类的DOM方法找不到元素?

javascript - 在 Angular 7 中递归使用 expand() 和 concatMap()

javascript - 需要 JavaScript 支持的页面上的 cURL 请求

jquery - 想要将 Genemu FormBundle 自动完成与 querybuilder 一起使用

jquery - 我需要一个可靠的 jQuery/CSS 选择框插件的建议

javascript - 使用 JavaScript 将子节点添加到内联 SVG。在 IE9 上不可能?

javascript - 使用 Javascript 和样式显示属性显示基于复选框值的 div

javascript - 动态表数量更新Javascript

javascript - 将jquery修改应用于meteor站点

javascript - 一次修改多个 DOM 项