javascript - 使用underscore.js的_.template()方法填充一段html模板,可是在IE7,8下无法填充。请问该怎么解决?
大家讲道理
大家讲道理 2017-04-10 14:50:19
[JavaScript讨论组]

最近在帮公司开发一个系统的前台页面,由于想避免用字符串拼接的办法来动态生成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>
    <p id="container"></p>
</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下面发现模板无法渲染,不知道是不是因为兼容性问题造成的,还是自己的写法存在问题,想请各位指点迷津。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
伊谢尔伦

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号