你可以做这样的事情。
<body>
<a href="http://google.com">Click me</a>
<div id="dynamic-content"></div>
<script id="template" type="text/html">
<h1>Hello</h1>
<p>This is a template</p>
</script>
<script>
document.addEventListener('click', function (e) {
var target = e.target;
if (target.tagName == 'A') {
e.preventDefault();
document.getElementById('dynamic-content').innerHTML = document.getElementById('template').innerHTML;
}
}, false);
</script>
</body>
它捕获所有点击事件并阻止默认行为。然后它从模板获取内容,该模板存储在类型为“text/html”的脚本标记内,并将其注入到DOM中。所有的浏览器都会忽略脚本标签而不是“text/javascript”,所以这样隐藏模板内容是安全的。我在这里并没有对模板做任何动态的处理,但如果你想这样做,你可以使用像John Resig的MicroTemplate这样的东西,就像他在这里描述的那样:http://ejohn.org/blog/javascript-micro-templating/。在使用诸如MicroTemplate之类的东西时,您需要先将模板内容与动态数据合并,然后再将其注入到DOM中。
另外一个很好的模板的选择是jQuery的官方模板(由微软合着):http://api.jquery.com/category/plugins/templates/
谢谢!完美 – Parker 2010-11-29 05:16:59