使用underscore.js的_.template()方法填充一段html模板,可是在IE7,8下无法填充。请问该怎么解决?

发布于 2022-08-31 09:13:58 字数 1135 浏览 9 评论 0

最近在帮公司开发一个系统的前台页面,由于想避免用字符串拼接的办法来动态生成html,于是想到了用模板,就选择了underscore.js。

下面是演示代码,很简单,只是自定义了个数组data,然后借用underscore的模板功能用data去填充id为tpl的模板,把结果作为#container的innerHTML:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" language="javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" language="javascript" src="js/underscore.js"></script>
<title></title>
</head>
<body>
    <div id="container"></div>
</body>
<script>
    $(function(){
        var data=[{name:'carl'},{name:'carl'},{name:'carl'}];
        var t=_.template($("#tpl").text());
        $("#container").html(t(data));
    });
</script>
<script type="text/template" id="tpl">
    <%_.each(obj,function(e,i){%>
    <ul>
        <li><%=e.name%></li>
    </ul>
    <%})%>
</script>
</html>

结果在FF,Chorome下输出正常,可是在IE7,8下面发现模板无法渲染,不知道是不是因为兼容性问题造成的,还是自己的写法存在问题,想请各位指点迷津。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

2022-09-07 09:13:58

是因为你的这一句代码有问题 var t=_.template($("#tpl").text());
IE低版本下获取script的内容不能用text()方法,而是用html()方法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文